參考:
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 然後整個人是懵逼的。乙個格式錯誤就讓迴圈無限重複了?說不...