C語言中scanf 函式的返回值

2021-10-02 23:39:22 字數 954 閱讀 4697

c語言中簡單的輸入scanf函式和輸出printf函式,我們經常使用,也很熟悉,但有時卻還是會在這兩個地方犯錯。
#scanf()函式

功 能: 執行格式化輸入

用 法: int scanf(char *format[,argument,…]);

scanf()函式是通用終端格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊,可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。

其呼叫格式為: scanf("《格式化字串》",《位址表》);

#scanf()函式返回值

(1)返回正整數。表示正確輸入引數的個數。

(2)返回整數0。表示使用者的輸入不匹配,無法正確輸入任何值。

(3)返回-1。表示輸入流已經結束。

在windows下,使用者按下ctrl+z(會看到乙個^z字元)再按下回車(可能需要重複多次),就表示輸入結束;

linux/unix下使用ctrl+d表示輸入結束。

#include

intmain()

return0;

}

輸入 1 2 列印3

輸入 2 3 列印5

輸入ctrl+z 列印^z結束(windows)

#關於~的作用

在windows下,使用者按下ctrl+z(會看到乙個^z字元),會停止輸入流,scanf會返回-1。-1的補碼為11111111 11111111 11111111 11111111 一共4個位元組。~是c語言中的按位取反,

~(-1)結果為00000000 00000000 00000000 00000000剛好為整數0的補碼。

因此當輸入ctrl+z時,scanf會返回-1,while(~-1)==while(0),0為假,退出while迴圈。

c語言scanf返回值

1.scanf 函式是有返回值的,它的返回值可以分成三種情況 1 正整數,表示正確輸入引數的個數。例如執行 scanf d d a,b 如果使用者輸入 3 4 可以正確輸入,返回2 正確輸入了兩個變數 如果使用者輸入 3,4 可以正確輸入a,無法輸入b,返回1 正確輸入了乙個變數 2 0,表示使用者...

C語言scanf 函式返回值的問題

不經意中發現scanf 的返回值問題,自己試驗和了解了一下,一些所知與各位分享 void main 1.scanf 函式有返回值且為int型。2.scanf 函式返回的值為 正確按指定格式輸入變數的個數 也即能正確接收到值的變數個數。從上邊的例子中可以得到驗證,這裡用變數x接收scanf 函式的返回...

C語言scanf函式的返回值問題

不經意中發現scanf 的返回值問題,自己試驗和了解了一下,一些所知與各位分享 void main 1.scanf 函式有返回值且為int型。2.scanf 函式返回的值為 正確按指定格式輸入變數的個數 也即能正確接收到值的變數個數。從上邊的例子中可以得到驗證,這裡用變數x接收scanf 函式的返回...