用戶:Guoyunhe/scanf
scanf是C語言標準化輸入函數。
GCC中的scanf
編輯如果您使用GCC編譯器,那麼在編譯一些示例程序的時候可能會在scanf處遇到錯誤。
scanf( "%d", &num );
這是由於GCC自身的特點造成的,您在其他編譯器上可能不會遇到。
因為scanf可能接收到無效的值,這可能會引起嚴重的錯誤。如果不使用返回值,則無法發現這一錯誤。GCC認為這是不可取的,因此強制必須使用返回值檢驗錯誤是否發生。否則,編譯無法通過。因此對GCC而言,上面的表述是錯誤的,儘管它並不違背C標準。
while( ! scanf( "%d", &num ) )
printf("输入错误,请重新输入!\n");
這樣編寫代碼,可以有效避免這些輸入錯誤,雖然它們要更繁瑣。