User:Guoyunhe/scanf
外观
scanf是C语言标准化输入函数。
GCC中的scanf
[编辑]如果您使用GCC编译器,那么在编译一些示例程序的时候可能会在scanf处遇到错误。
scanf( "%d", &num );
这是由于GCC自身的特点造成的,您在其他编译器上可能不会遇到。
因为scanf可能接收到无效的值,这可能会引起严重的错误。如果不使用返回值,则无法发现这一错误。GCC认为这是不可取的,因此强制必须使用返回值检验错误是否发生。否则,编译无法通过。因此对GCC而言,上面的表述是错误的,尽管它并不违背C标准。
while( ! scanf( "%d", &num ) )
printf("输入错误,请重新输入!\n");
这样编写代码,可以有效避免这些输入错误,虽然它们要更繁琐。