我已经开始阅读“ The C Programming Language ”(K&R)并且我对这个函数有疑问getchar()
。
例如这段代码:
#include <stdio.h>
main()
{
int c;
c = getchar();
putchar(c);
printf("\n");
}
键入toomanychars
++ (EOF) 仅CTRL打印. 我认为这是意料之中的,因为它是第一个引入的角色。Dt
但是接下来的另一段代码:
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF)
putchar(c);
}
键入toomanychars
+ CTRL+ D(EOF) 打印toomanychars
。
我的问题是,如果我只有一个 char 变量,为什么会发生这种情况?其余字符存储在哪里?
编辑:
感谢大家的回答,我现在开始明白了......只有一个问题:
第一个程序在给定CTRL+时退出,D而第二个程序打印整个字符串,然后等待更多用户输入。为什么它等待另一个字符串并且不像第一个那样退出?