首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中ungetc和getchar函数的使用

C中ungetc和getchar函数的使用
EN

Stack Overflow用户
提问于 2021-06-06 17:34:30
回答 1查看 43关注 0票数 0

我最近开始学习C语言中的I/O文件操作,在这段代码中,我遇到了一个问题,即使我输入了非空格字符‘’,while循环也不会退出。请告诉我哪里错了,怎么退出while循环。

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

发布于 2021-06-06 17:40:19

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67857672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档