首页 > 解决方案 > “getchar()”如何知道在 C 中要读取什么字符?

问题描述

我刚刚开始学习 C,遇到了一个getchar在 while 循环中使用该函数的示例。我不明白getchar如果没有参数,它如何知道要返回哪个字符。它的使用方式与此类似:

int c;
while((c = getchar()) != EOF){
    putchar(c);
}

标签: cgetchar

解决方案


首先,注意函数原型:

int getchar(void);

getchar()函数总是从标准输入流中读取下一个字符。

不需要任何参数,因为它只做一件事。特别是,从文档中观察:

getchar() 函数应等效于 getc(stdin)。

所以getchar()实际上与 相同getc(),只是getc()允许您指定输入流。

您的困惑在于该getchar()函数没有显式输入参数(以函数参数的形式 - 它是一个void函数),但它可以向您返回各种不同的结果。

它的“输入”取决于用户输入,就像scanf()fgets()甚至是通过argv数组的命令行参数。


推荐阅读