while (1)循环中使用scanf("0x%s", str); scanf一直返回0的问题
c吧
全部回复
仅看楼主
level 9
冷言Mu 楼主
while (1)
{
temp = scanf("0x%s", str);
printf("temp = %d\n", temp);
//fflush(stdin);
}
第一次循环的时候,scanf阻塞,等待输入。
一旦在控制台输入了任意数据(符合0x开头或者不符合都试过)后,便开始无限输出temp = 0。
不理解其中的缘由,为什么。我并没有输入任何东西,为什么scanf返回了。
其他都不变,换成scanf("%s", str);每次都会成功阻塞。我不在控制台输入,便不会返回。这是不是可以证明相同我不在控制台输入,scanf并不会从stdin读入任何东西。为什么scanf("0x%s", str);返回了0呢?
2020年06月06日 16点06分 1
level 1
2020年06月06日 21点06分 3
1