c為什麼輸入字串前有一句getchar

時間 2021-09-10 01:43:28

1樓:

getchar()函式的功能是從鍵盤輸入一個字元。

getchar有一個int型的返回值.當程式呼叫getchar時.程式就等著使用者按鍵.

使用者輸入的字元被存放在鍵盤緩衝區中.直到使用者按回車為止(回車字元也放在緩衝區中).當使用者鍵入回車之後,getchar才開始從stdio流中每次讀入一個字元.

getchar函式的返回值是使用者輸入的第一個字元的ascii碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.

在這裡是接收回車符即'\r'字元。就是前面你輸入整型數n後敲的回車符。

因為while迴圈內還有個gets(c);語句,這句是從鍵盤輸入字串,上面說的getchar就是接收回車符,避免回車符被這裡的c接收。

2樓:e網e友

僅僅學教材,是不能成為程式設計師的。多實踐吧、多交流,cin和cout在我的程式裡,根本沒有的。現在天下教材統一抄,只會抄,不會程式設計的老師太多了,建議國家對所以計算機老師和教材作者考核,o(∩_∩)o哈哈~

3樓:孤心殘雨

getchar簡單的說,就是暫停下來給你看的

c++getchar()函式問題

4樓:

getchar()函式 就是從輸入緩衝區讀一個字元,再轉換成 int 型 數值。

9710,1097 是 cout 輸出語句 問題。

如果你 加上一個換新行就不會混淆了:

cout << getchar()<< endl;

cout << getchar()<< endl;

回車 -- 打入enter 鍵,getchar() 得到的是"\n", 轉ascii值 十進位制 10

97 是 "a" 的 ascii值。

******************************====第2個程式,你只有 3 個 getchar() 。讀到的是:

"a","\n","a"

輸出 "\n","a"

第1個程式,你有 4 個 getchar() 。讀到的是:

"a","\n","a","\n"

輸出 "a","\n"

c++ getchar()問題

5樓:風若遠去何人留

getchar的作用是到輸入緩衝區讀資料,只讀一個位元組

而你如果加上

char c;

c=getchar();//測試中只要少了這段就不必要再加1個getchar()停留

cout<

在你輸入這個char c時 是不是要輸入一個字元,然後回車,這個字元被c=getchar獲取到了,並賦值給c

但是還有一個回車存在了輸入buffer裡面

所以在下面你要停住的時候,第一個getchar就獲取到了這個回車 無法達到停住的效果

停留視窗,getchar是個不錯的方法,保險起見,可以先清空輸入buffer

或者用getch函式

如果是windows可以用system("pause") 這個方法很流行

6樓:

還有一個標準的

system("pause");

在需要的地方加上這句話就ok啦!

一般是在return 0;前邊。

C語言,輸入字串,輸出字串中一共有多少個重複的字元

統計字串中的重複字元,可以通過簡單雜湊演算法來實現。有效的字元的ascii值在0 127之間,定義一個128位的陣列,初始化為0,用陣列下標對應相應的字元,陣列元素值表示字元出現的頻率,統計相應字元的個數,個數大於1的字元就是重複的。include void main int i printf in...

C語言如何輸入一行有空格的字串?

c語言輸入一行有空格的字串的方法 1 對於char char s 100 1000 第二個參數列示允許輸入的最大長度while 1000 輸入輸出樣例。輸入 he llo 輸出 he llo 2 對於string string s getline cin,s while getline cin,s ...

c語言,輸入字串,查詢只出現一次的字元,求高手幫忙寫,謝謝謝謝謝

include stdio.h include string.h include stdlib.h char firstnotrepeatingchar char pstring 如果這個字串為空,或者字串中的每個字元都至少出現兩次return 0 int main void 小小de菸圈 incl...