C語言中scanf與回車的問題

2022-06-16 08:48:10 字數 523 閱讀 1453

本文原作於2023年8月

假如輸入abc[回車],使用scanf("%s")讀取。將讀取到abc並將其返回,但[回車]仍留在輸入流中。

如果接著輸入efg[回車]並使用scanf("%s")讀取,這時候會將abc後面的[回車]自動拋棄,但是仍留下efg後面的[回車]。數字也同理。

結論1:除了scanf("%c")之外,其他的讀取都是在字元前碰到回車或空白字元自動拋棄,在字元後碰到回車或空白字元自動停止。

但如果使用了scanf("%c")來讀取,這時候回車或空白字元也就算是字元了。不會被自動清除。

例子:若**為

scanf("

%c",&i);

scanf("%c

",&j);

輸入a[回車]b的話

結果為: i=a,j=[回車]

但如果中間加上getchar();

則最終結果為:i=a,j=b

C語言中scanf函式與空格回車

1 scanf的返回值 scanf通常返回的是成功賦值 從標準輸入裝置賦值到引數列表所指定的記憶體區域 的資料項數,如果出錯或是遇到end of file 注意,如果想從鍵盤輸入eof,在windows的dos視窗用ctrl z 或f6 在unix系統上,用ctrl d。則返回eof,比如 scan...

C語言中scanf函式與空格回車

scanf 函式有返回值,且返回值是正確讀取的個數 scanf d d x,y scanf是從快取區讀取資料的 scanf對不同型別輸入的處理方式 前提 空格 回車 製表符table都是空白字元 原因是 scanf n s 接收非回車符,一旦碰到回車就停止,然後進入迴圈裡面執行。但是緩衝區裡面的 n...

c語言中的scanf

在c語言的日常應用和學習中 我們時常要用到scanf,但是,作為初學者的我們,在使用scanf的時候時常會出問題。1.在輸入的時候字元要與scanf中的字元一一對應,例如 scanf a的值為 d,b d a,b 我們在輸入的時候就應當輸入如 a的值為1,b 0 注意要一一對應。2.在電腦端連續輸入...