C語言中scanf 函式的小結

2021-09-11 15:05:04 字數 934 閱讀 2509

1.scanf()的返回值

scanf函式是有返回值的,接受乙個變數返回1。

如:c=scanf("%d%d",&a,&b);

若輸入的全是整數,則c為2;

若全是字元,則c為0;

因為scanf在佔位符存在的情況下,只接受符合佔位符的資料。

2.scanf的結束

如果不是%c,則以空格,回車,tab鍵結束,或非法字元結束;

當為%c時,以回車結束,會把回車傳值給變數,可能會出現問題。

不讓變數接收回車的方法:

(1)getchar();

用getchar()直接吸收掉回車;

注意:因為不是char i;i=getchar();光是getchar();所以回車並沒有被變數接收,所以我們常說用getchar()函式吸收回車;

(2)已知字元長度;

scanf("%2c");

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

格式控制符的基本格式為:%[scanfset]

scanfset 有兩種形式:一種是以非 「^」 字元開頭的 scanset , 表示在讀入字串時將匹配所有在 scanfset **現的字元,遇到非scanfset 中的字元時輸入就結束;另外一種形式是以 「^」 字元開頭的scanfset ,表示在讀入字串時將匹配所有不在scanfset **現的字元,遇到scanfset 中的字元輸入就結束。

(3)scanf("\n%c",str);

可以在%前面加回車,但要加在雙引號中。

此方法可以活學活用,如:要輸入n組長度未知的數。

n直接用scanf();輸入,並用for迴圈接收每組數,

用:scanf("%d%c",&a[i][j],&c);//其中c為已經定義的字元變數

if(c=='\n')

break;

C語言中scanf函式

scanf 函式每次讀取乙個字元,跳過所有的空白字元,直至遇到第1個非空白字元才開始讀取。因為要讀取整數,所以 scanf 希望發現乙個數字字元或者乙個符號 或 如果找到乙個數字或符號,它便儲存該字元,並讀取下乙個字元。如果下乙個字元是數字,它便儲存該數字並讀取下乙個字元。scanf 不斷地讀取和儲...

C語言中的scanf函式

思考 如果,我們想拿到使用者輸入的東西,怎麼辦?解決 我們需要使用 scanf 這個函式 1.scanf 的作用 在程式執行到 scanf 的時候,接收使用者輸入的一些資料,並儲存在變數之中 2.scanf 的語法 scanf 格式控制字串 變數位址列表 語義 格式控制字串裡寫佔位符,佔位符用來接收...

C語言中scanf函式的實現

在scanf.c檔案中,可以看到scanf函式,如下 include include include loc incl.h int scanf const char format,對於va list va start va end等在stdarg.h標頭檔案中定義的巨集,都已經在 stdarg.h標...