首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我对getchar()函数的混淆

我对getchar()函数的混淆
EN

Stack Overflow用户
提问于 2018-04-20 02:04:25
回答 2查看 0关注 0票数 0

我很困惑getchar()在以下代码中的角色。我的意思是,我知道它帮助我看到输出窗口,只有当我按Enter键时才会关闭它。

所以getchar()基本上是在等我按回车,然后读取一个字符。

这个函数读取的是什么单字?我没有按键盘上的任何键让它读。

现在,当它没有读取任何东西,为什么它没有错误地说“嘿,你没有输入任何东西让我阅读”?

代码语言:txt
复制
#include <stdio.h>

int main()
{
    printf( "blah \n" );
    getchar();
    return 0;
}
EN

回答 2

Stack Overflow用户

发布于 2018-04-20 10:51:04

getchar()函数只需等待直到接收到一个字符,然后将程序保持到接收为止。

当你按Enter键时会发送一个字符;在Windows操作系统下,它将发送一个回车(CR)和一个行提要(LF)。

票数 0
EN

Stack Overflow用户

发布于 2018-04-20 11:17:26

这是因为getchar()是一个阻塞函数。

你应该阅读关于阻塞函数,这基本上使得进程等待发生。

这种等待行为的实现取决于函数,但通常它是一个等待事件发生的循环。

对于getchar()函数的情况,这可能被实现为一个不断读取文件(本例为stdin)的循环,并检查文件被修改的天气。如果该文件被修改,则该循环通过执行其他操作来执行。

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

https://stackoverflow.com/questions/-100008210

复制
相关文章

相似问题

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