【问题标题】:C using getchar()C 使用 getchar()
【发布时间】:2022-01-11 11:52:28
【问题描述】:

我有以下代码行: while((temp = getchar())!= EOF){printf("Hello");}

我希望程序为每次读取的字符打印 Hello,但它会为每次按下的输入打印。我怎样才能将其更改为我的意图?

【问题讨论】:

标签: c getchar


【解决方案1】:

当您从键盘输入一个字符时,每个字符都会进入一个缓冲区,包括 enter(\n) 字符。 getchar 函数将依次获取缓冲区中的每个字符,当然还会包括输入字符。您必须检查 getchar 函数的返回字符是否输入:

while ((temp = getchar()) != EOF) {
    if (temp != '\n') {
        printf("Hello\n");
    }          
}

【讨论】:

  • 它仍然只在按下回车时打印。
  • 您想在输入字符后立即打印?如果使用 getchar 函数,非常困难。因为 getchar 从缓冲区中获取字符并将字符放入缓冲区中,所以您必须按 Enter。使用 kbhit() 检查您何时键入字符,使用 getch() 获取字符可能会解决您的问题
猜你喜欢
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多