日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于字符的读入与输出

發(fā)布時(shí)間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于字符的读入与输出 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在筆試中,經(jīng)常見到字符的讀入與輸出的題目。逆序打印輸入時(shí)最常見、最基本的考題,復(fù)雜點(diǎn)的就是統(tǒng)計(jì)單詞、逆序打印單詞之類的。難點(diǎn)是如何判斷輸入的結(jié)束,如果用getchar函數(shù),其輸入結(jié)束符為EOF(其打印值為-1),c=getchar(); //c的類型為Int型,因?yàn)镋OF==-1,那么scanf函數(shù)的使用方法呢?

#include<stdio.h>
int main()
{
?????? int i;
?????? char ch;
?????? for(i=0;i<=3;i++)
?????? {
????????????? printf("%d ---- ",i);
????????????? scanf("%c", &ch);
????????????? printf("/n");
?????? }
??????? return 0;
}
運(yùn)行結(jié)果:
0 ---- a
1 ----
2 ---- b
3 ----
產(chǎn)生其原因在于:
因?yàn)?scanf %c 只是讀入一個(gè)字符,而你在輸入時(shí)實(shí)際上輸入的是:某個(gè)字符
+Enter,Enter 產(chǎn)生的/n 也會停留在輸入緩沖區(qū)中,下次調(diào)用 scanf %c 時(shí)就會直接讀到
它而不是等待你再次輸入!同理,getchar()也有類似的行為。所以我們才不提倡使用
scanf("%c", ...),尤其是把它在循環(huán)中。
解決的方法:
(1)、將 scanf("%c", &ch); 修改為:
??????? scanf(" %c", &ch);?? /*在%前加上一個(gè)空格*/
(2)、將 scanf("%c", &ch); 修改為:
??????? scanf("%c%*c", &ch);

?

總結(jié)

以上是生活随笔為你收集整理的关于字符的读入与输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。