EOF小结

最近在复习C基础知识,发现自己挺怕字符的,出的花样太多了,而我正是这方面欠缺,写其他程序的时候也很少专一用到,看《C语言程序设计》发现还是大师的书好啊,很后悔自己怎么没有早早的细细品味那本书。

看到EOF有点搞不明白,里面写了个小程序,怎么都到跳不出while((c=getchar())!=EOF)的循环,getchar返回是int型,EOF是-1,可是输入了所有我能想到的字符,就是挑不出去,最后只好求助于网络。看到一篇博客不错,链接为:http://hi.baidu.com/wanwanwan2008/blog/item/1e6a4915485c6914972b43f0.html 

为了自己记忆,我自己也总结一下:

1、EOF:在linux下是ctrl+D,在windows下是ctrl+Z。不过也是只在如下几种情况下(其实是在getchar提示新的一次输入时)作为文件结束符:

(1)执行getchar,输入第一个就是EOF,跳出;

(2)前面输入为换行符时,跳出;

(3)其他情况,连续两次输入EOF,第一次相当于换行,结束当前的输入,第二次才是结束符;

2、getchar是以行为单位进行存取,如下程序:

while((c=getchar())!=EOF) {putchar(c)};

并不是输入一个字符,就输出一个字符,而是按行处理,输入字符,知道遇到换行,或EOF才会输出。

另外应为EOF为-1,一般getchar返回定义为int型。

3、输入字符数组集中情况

(1)用getchar();

(2)scanf接收输入存在字符数组或字符串里,但遇到空格就停止。

(3)getline(cin,str,‘结束符’);

(4)gets等,知道怎么用,能熟用几个

posted @ 2012-08-28 21:34  always on the way  阅读(3861)  评论(0编辑  收藏  举报