跳至內容

用戶:Guoyunhe/scanf

維基教科書,自由的教學讀本

scanf是C語言標準化輸入函數。

GCC中的scanf

[編輯]

如果您使用GCC編譯器,那麼在編譯一些示例程序的時候可能會在scanf處遇到錯誤。

scanf( "%d", &num );

這是由於GCC自身的特點造成的,您在其他編譯器上可能不會遇到。

因為scanf可能接收到無效的值,這可能會引起嚴重的錯誤。如果不使用返回值,則無法發現這一錯誤。GCC認為這是不可取的,因此強制必須使用返回值檢驗錯誤是否發生。否則,編譯無法通過。因此對GCC而言,上面的表述是錯誤的,儘管它並不違背C標準。

while( ! scanf( "%d", &num ) )

   printf("输入错误,请重新输入!\n");

這樣編寫代碼,可以有效避免這些輸入錯誤,雖然它們要更繁瑣。