【发布时间】:2015-09-16 04:52:46
【问题描述】:
刚开始使用 K&R 并点击:
#include <stdio.h>
/* copy input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
它只显示我输入的内容,即使它是一串文本。
cacti
cacti
stop repeating what i'm saying
stop repeating what i'm saying
就这样。
我不明白为什么我不能用一串文本实例化变量 c 并以相同的方式打印它。 (为了示例而忽略 while 循环)就像:
main()
{
int c;
c = "cacti";
putchar(c);
}
其中的输出显然只是 'd'
【问题讨论】:
-
每个
getchar读取一个字符,每个putchar显示一个字符。cacti。整个单词永远不会一次存储。您不会立即看到每个字符都回显,因为您的输入是按行缓冲的。d是"cacti"指针的最后一个字节在解释为文本时的最终结果。 -
@minitech 哦。这实际上很有意义。凯谢谢! ..啊。我谋杀了这个问题:c