【发布时间】:2010-09-24 07:27:55
【问题描述】:
我编译并运行了以下控制台程序,它应该读取一个整数并返回成功读取的字段数:
# include <stdio.h>
int main ( void )
{
int result, number;
printf ( " Enter an integer : \n ");
result=scanf ( " %d " , & number );
printf ( " Fields read % d " , result );
return 0;
}
我编译(VS 2008)并在 Win Vista 下的 2 台机器上对其进行了测试,而在一台机器上它按预期运行,在另一种情况下,当我输入数字时,scanf 不会返回并等待附加输入。我必须输入另一个整数才能退出,此外,当它退出时,它会返回 1 作为结果值,这是不正确的,因为我输入了 2 个整数。
我错过了什么吗?
【问题讨论】:
-
@codaddict 的答案已经有了,但您确实需要努力使用空格。即使编译器工作正常,也经常存在语义差异。