在一个循环中循环打印两次

Ves*_*ske 0 c

所以我有这个小循环,似乎在一次运行中打印出我的文本两次.

所以这是代码:

int main(void){
 char cont;
 int check = 1;

 while(check == 1){
  printf("Something");
  cont = getchar();
  if(cont == 'j')
   check = 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

现在输出的是:

某事,现在它等待输入Something,Something并等待输入.

第一次打印后,按下j时将打印两次.

这是为什么?

Mar*_*ian 6

你按'j'和'换行符',所以你键入两个字符并循环执行两次,然后开始读取下一行.

  • +1为一个好的答案,不知道为什么一个下来投票.也许添加一些关于`stdin`的缓冲性质的东西? (2认同)