这可能是一个简单的问题,但我搜了很多资料仍未解决。我用gcc编译以下代码片段,并从终端运行程序。然而程序不允许输入整数和字符,也不等待输入字符?有没有人能够帮助我呢?先谢谢啦!
#include <stdio.h>
int main()
{
char c;
int i;
// a
printf("i: ");
fflush(stdin); scanf("%d", &i);
// b
printf("c: ");
fflush(stdin); scanf("%c", &c);
return 0;
}
fflush(stdin)
会导致未定义的行为,不要使用它。 - Crowmanc
没有被使用。实际上,对于i
也是一样的。请注意,如果输入是终端,则scanf()解析非常依赖终端的stty
设置。 - ash