关于getchar()与EOF的问题(缓存好像无限)。(本人学C没多久)
#include <stdio.h>
main()
{
int c,i,n;
while((c=getchar())!=EOF)
putchar(c);/* 循环只有这一句*/
getchar();/*为什么吸收不了缓存中的数据?*/
i=getchar();/*本来想输h的*/
n=getchar();/*想输j的,可是好像缓存中有N个-1(EOF)一样前面两个都没吸收掉*/
printf("\nc=%d\ni=%d\nn=%d\n",c,i,n);
}
输入:aaa(ctrl+z)
输出:aaa c=-1 i=-1 n=-1
为什么直接得到i和n等于-1呢?而不等我输入呢?
[ 本帖最后由 懒惰星 于 2011-3-27 12:57 编辑 ]