跳转到内容

User:Guoyunhe/scanf

维基教科书,自由的教学读本

scanf是C语言标准化输入函数。

GCC中的scanf

[编辑]

如果您使用GCC编译器,那么在编译一些示例程序的时候可能会在scanf处遇到错误。

scanf( "%d", &num );

这是由于GCC自身的特点造成的,您在其他编译器上可能不会遇到。

因为scanf可能接收到无效的值,这可能会引起严重的错误。如果不使用返回值,则无法发现这一错误。GCC认为这是不可取的,因此强制必须使用返回值检验错误是否发生。否则,编译无法通过。因此对GCC而言,上面的表述是错误的,尽管它并不违背C标准。

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

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

这样编写代码,可以有效避免这些输入错误,虽然它们要更繁琐。