【问题标题】:Use of ungetc and getchar function in CC语言中ungetc和getchar函数的使用
【发布时间】:2021-06-06 09:34:30
【问题描述】:

我最近开始学习 C 中的 I/O 文件操作。在这段代码中,我遇到了一个问题,即使我输入了非空白字符 ' ',while 循环也没有退出。请告诉我我错在哪里以及如何退出while循环。

#include <stdio.h>
int main()
{
  char a = 0;
  while ((a = (char)getchar()) != ' ');
  ungetc(a, stdin);
  printf("\n Value of A is  %c", a);
  return 0;
}

【问题讨论】:

    标签: c io


    【解决方案1】:

    getchar 函数返回 int 是有原因的。如果有一个字符,它可以返回一个字符,或者EOF 表示输入流的结束。所以使用char 变量来存储结果并不是一个好主意。

    然后,您还应该始终测试EOF,并在遇到这种情况时采取相应措施。

    此外,这些流通常是行缓冲的,因此在输入整行之前您不会看到任何输入。

    【讨论】:

      猜你喜欢
      • 2016-08-19
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2013-01-23
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多