最近在復習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等,知道怎么用,能熟用幾個