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等,知道怎么用,能熟用幾個


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM