首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助理解scanf在conjuction中使用的ungetc行为

需要帮助理解scanf在conjuction中使用的ungetc行为
EN

Stack Overflow用户
提问于 2012-07-07 13:59:37
回答 2查看 215关注 0票数 0

我无法理解我的节目的行为。它调用scanf,然后是ungetc,然后是printf。

我无法理解输出行为背后的原因。如果有人澄清了这一行为,这就是code.Would提供的巨大帮助。

代码语言:javascript
复制
int main()
{
  int n=0;
  scanf("%d",&n);
  ungetc(n,stdin);
  printf("%d\n",n);
  return 0;
}

gcc编译器和linux中的输出:首先给出90,然后它等待另一个数字,在我给出另一个数字之后,它打印90。

EN

回答 2

Stack Overflow用户

发布于 2012-07-07 14:12:45

\n结束您的\n格式会指示scanf()在您的数字之后使用它所看到的所有空格。它看起来像是在等待另一个输入,因为它会读取,直到得到一些非空格字符。您输入的内容并不是实际读取的,而是留给stdin进行后续读取。

票数 2
EN

Stack Overflow用户

发布于 2012-07-07 14:15:18

扫描格式

代码语言:javascript
复制
scanf("%d\n",&n);

使用您输入的数字之后的所有空格。因此,只有在输入了非空白字符(以及向程序发送输入的换行符)之后,扫描才会完成。\n不具体要求换行符,它告诉scanf使用以下所有空格并忽略它。

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

https://stackoverflow.com/questions/11375611

复制
相关文章

相似问题

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