Chinaunix
标题:
请问一个很简单的C语言的题目!为何结果是这样的呢?想了很久都不明白
[打印本页]
作者:
xyzjay
时间:
2007-12-10 14:16
标题:
请问一个很简单的C语言的题目!为何结果是这样的呢?想了很久都不明白
今天看C语言圣经 发现一个小程序
源程序如下相信大家一定见过!
#include<stdio.h>
void main()
{
int c;
while((c = getchar())!=EOF)
{
putchar(c);
}
}
就是输入一个字符,打印出一个字符!
按照这段程序的表达的意思就是 输入一个字符打印一个字符!
例如 输入 a 按下回车键 打印出一个a
但是我无意中 输入了 abcdefg 然后按下回车键打印出了 abcdefg
哪个牛人解释一下原因?
想了好久没有想明白啊!
作者:
immortality
时间:
2007-12-10 14:40
char buf[512];
...
while ( (rd=read(0,buf,512)) >0 )
write(1,buf,rd);
就像大部分情况下运行上面的代码,
不会只当从stdin读到512个字符后才向stdout输出,
而是你输入几个字符,键入回车,就会立即输出。
这个其实是和终端的设置有关,终端也可以改为单字符输入的模式,楼主有兴趣可以找书详细看看
作者:
xyzjay
时间:
2007-12-10 14:45
谢谢你!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2