您的位置:首页 > 其它

getchar()的一点感受

2006-04-07 23:19 281 查看
今天花了很长时间看了这样一段小程序:

1 #include

2 main()

3 {

4 int c;

5 c=getchar();

6 while(c!=EOF)

7 {

8 putchar();

9 c=getchar();

10 }

11 return 1;

12 } 其实这是c程序设计语言的第一个小程序,不过当时我就有点乱了,因为我认为应该是一次只能输出一个字符,可是这个却可以实现多个字符的输出,在当时不理解的情况下,我又将第9行去掉,出来一个结果(可以试一下,是个死循环)。最后和同学讨论了一下,终于理解了。解释一下吧。

4 int c; //这个可以去看一下getchar的声明,就可以知道它的定义其实是int型的。

5 c=getchar();// 获取一个字符,注意:在这里只是获取了一个字符

6 while(c!=EOF)//判断是否结束

7 {

8 putchar();//把第一个数输出

9 c=getchar();//获取下一个数

10 }

重要的问题是循环部分,假如你输入的数是abc,其实这三个数都保存在了缓冲区里,第一次,从缓冲区中读取一个字符,然后循环(我原来想的是一次就结束),将缓冲区中的数据读取结束后才结束。

举个例子:

1 #include

2 main()

3 {

4 int c;

5 c=getchar();

6 putchar();

7 c=getchar();

8 putchar();

9 return 1;

10 }

如果你输入的依然是abc,那么程序会输出ab,并不会让你继续输入数据,因为缓冲区的数据还没有读取结束。

那么还看这个例子,如果输入a后回车呢?结果是输出a就结束,也没有让你输入数据,因为其实你已经输入了两个数据,一个是a,而另一个是回车,这回对这个程序有了深入了了解了吧?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: