循环问题 - 重复指令两次而不是一次

时间:2018-06-11 16:15:01

标签: c loops for-loop char break

在这里学习C,我很困惑。

char ch;

for(;;)
{
    puts("Type a letter: ");
    ch=getchar();
    if(ch == '~')
    {
        break;
    }
}

为什么打印'键入字母'两次而不是一次?运行时程序会像这样:
键入字母:
A
键入字母:
键入字母:
d
键入字母:
键入字母:

PS同样的事情也发生在while循环中。

1 个答案:

答案 0 :(得分:0)

你按下' a'然后按换行符(输入)。所以你的代码需要' a'作为第一输入和换行作为第二输入。所以它打印了两次线。 你可以试试这个:

lsblk -l