關於scanf函式

2021-06-29 10:38:56 字數 668 閱讀 5484

scanf函式是程式設計中最長使用的函式之一了,掌握scnaf函式的使用是學好程式設計的基礎。

首先是scanf函式的返回值問題:

如果scanf函式返回的是執行一次讀取,匹配成功的個數。

如:scanf(「%d%d%d」,&a, &b, &c)如果輸入1, 2, 3,返回值為3,如果輸入1  2  b  4讀取到b後就結束了,返回值為2; 如果輸入a, b, c,返回值為0。

如果讀取失敗,即在執行scanf函式時已經讀取完所有值,那麼執行scanf時會返回-1。

注意在迴圈執行scanf時即使讀取完所有輸入,scanf函式還會執行。

如:i = 0;

while(scanf("%d", &a[i++]) != -1);  在讀取完最後乙個數後,雖然此時已經沒有可以讀取的資料了,但scanf仍執行,因此最後i的值為讀入的資料個數+1。

其次是scanf函式讀取情況:

1:  scanf("%s",)與gets():

scanf("%s", )用來讀取乙個字串,如果遇到空格或回車換行會停止讀入,所以scanf("%s", )適合讀取單詞;gets()用來讀入一整行的字串,遇到空格不停止,即空格也算是字串的乙個字元。

2:scanf("%c",)與getchar()

scanf與getchar都是可以讀取單個字元,對於空格和回車都不過濾。

關於scanf和gets函式

首先,我描述一下我遇到的問題。先輸入乙個整數,回車,然後迴圈n次gets string 字串。輸出的結果,第乙個是空,從第二項開始有值。這是為什麼呢?int n,cnt 0 cin n vectorv 1000 while cnt本道題用gets 的好處在於,可以直接讀取一整行,空格也可以讀進去。如...

關於Scanf函式的使用!

這裡講一下我自己在程式設計過程中的例子 2.截圖太麻煩,直接打程式了 應當注意的是 如果在 格式控制字串 中除了格式宣告外還有其他字元,那麼需在輸入資料時對應的位置上字元要保持一致 例如scanf a f,b d n a,b 則需輸入a 1,b 2 而不是直接輸入1 2,會導致錯位結果不理想 3.當...

關於scanf函式與printf函式應該注意的點

這裡寫一下有關scanf函式與printf深入一點了解!廢話不多說,直接上乾貨。scanf函式 注意點1 首先給出scanf函式的原型 int scanf const char restrict format,可以看到,scanf函式其實是有返回值的,是乙個int型資料,可能大家幾乎沒有怎麼用到過他...