scanf 的輸入格式與 EOF 如何結束迴圈

2022-06-12 01:27:09 字數 787 閱讀 2411

參考:

1,scanf("%d", &n)

① 以回車作為輸出的結束標誌。

② 返回值為 eof,可以按下下述按鈕結束迴圈,

ctrl+z ->回車 -> ctrl+z -> 回車 ->ctrl+z ->回車

2,scanf("%s", s)

① 以空白字元作為輸出的結束標誌,該空白字元會被丟棄,但要回車才能進入迴圈體內。

② 返回值為 eof,可以按下下述按鈕結束迴圈,

ctrl+z ->回車 -> ctrl+z -> 回車 ->ctrl+z ->回車

3,scanf(「%[^\n]」, str);    

① 以回車作為輸出的結束標誌,該空白字元並不會被丟棄。

所以要想辦法讀取掉,不然回車一直無法被讀取,也不會被丟棄,一直在迴圈。

② 返回值為 eof,可以按下下述按鈕結束迴圈,

ctrl+z ->回車 -> ctrl+z -> 回車

4,scanf("%[^\n]%*c", str);  

在 3 的基礎上,利用 %*c 讀入回車。其它都與 3 一樣。

可以利用這個實現一次迴圈讀取兩個以回車分隔開的字串。

#define _crt_secure_no_warnings

#include#include#include#define n 100

char s1[n];

char s2[n];

int main(void)

system("pause");

return 0;

}

scanf格式化輸入

scanf 函式的功能是從計算機預設的輸入裝置 一般指鍵盤 向計算機主機輸入資料。呼叫scanf 函式的一般格式如下 scanf 格式字串 輸入項位址表 例如 scanf d f i,f 其中,格式字串 可以包含三種型別的字元 格式指示符 空白字元 空格 跳格鍵 回車鍵 和非空白字元 又稱為普通字元...

scanf 格式化輸入

scanf 有種帶的格式化輸出方式 此格式控制符的基本格式為 scanfset includeint main 以下來自網路 scanfset 有兩種形式 一種是以非 字元開頭的 scanset 表示在讀入字串時將匹配所有在 scanfset 現的字元,遇到非scanfset 中的字元時輸入就結束 ...

scanf函式格式輸入與隱藏bug問題

今天在寫函式的時候,將乙個scanf d choose 函式放入進乙個迴圈體,調參時,當我輸入乙個英文本元,因為我設定的格式符號要求是int型,所以輸入是乙個錯誤的格式,當輸出後,奇怪的事情就發生了,迴圈體開始無限迴圈 使用的do while 然後整個人是懵逼的。乙個格式錯誤就讓迴圈無限重複了?說不...