【发布时间】:2016-09-08 01:56:27
【问题描述】:
printf("hello2");
int i = 0;
int done = 0;
while (!done)
{
char c;
printf("hello3");
c = getc(stdin);
printf("hello4");
if (isspace(c))
{
done = 1;
ungetc(c, stdin);
printf("hello5");
}
}
所以我的程序当前正在尝试读取输入(在这种情况下,具体来说是一个空输入)。但是,在我发现我的程序不起作用后,我尝试通过分散 printfs 对其进行调试,在我看来,在c = getc(stdin) 之后,程序停止工作?如果我的理论是正确的,那么使用c = getc(stdin) 有什么问题?
【问题讨论】:
-
通过将
\n附加到每个打印的字符串来确保刷新输出。没有足够的代码来识别问题。 -
注意
getc()返回一个int,通常有257个不同的值EOF和unsigned char范围内的值。 -
在每次调用
printf()后尝试使用fflush(stdout);以确保打印应该打印的内容。 -
请发MCVE 并准确描述您输入的内容;你看到了什么输出,你期望什么输出