在这里学习C,我很困惑。
char ch;
for(;;)
{
puts("Type a letter: ");
ch=getchar();
if(ch == '~')
{
break;
}
}
为什么它会打印“键入字母”两次而不是一次?程序运行时是这样的:
输入一个字母:
一个
输入一个字母:
输入一个字母:
d
输入一个字母:
输入一个字母:
g
PS 同样的事情也会发生在 while 循环中。
最佳答案
您按“a”,然后按换行符(输入)。因此,您的代码将“a”作为第一个输入,将换行符作为第二个输入。所以它打印了该行两次。 你可以试试这个:
char ch;
for(;;)
{
puts("Type a letter: ");
ch=getchar();
getchar(); //newly added line. This line will discard the newline
if(ch == '~')
{
break;
}
}
关于c - 循环问题 - 重复指令两次而不是一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50802035/