【问题标题】:How does "getchar()" know what character to read in C?“getchar()”如何知道在 C 中要读取什么字符?
【发布时间】:2021-01-17 05:04:45
【问题描述】:

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

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

【问题讨论】:

  • 可能会使用推断的上下文,例如键盘或标准输入设备。在许多系统上,键盘组合 Ctrl + C 是 EOF(在 GUI 之外)

标签: c getchar


【解决方案1】:

首先,注意函数原型:

int getchar(void);

getchar() 函数alwaysstandard input 流中读取下一个 字符。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多