讀取文本文件
若要讀取一個文件,請使用r模式打開。一般來說,讀取文件時最好不要用fscanf,因為,除非文件的數據格式非常標準,否則fscanf并不能準確地讀取數據。請換用fgets一次讀入一行,然后分析提取所需數據。下面的代碼演示了一個讀入文件并在屏幕上顯示其內容的過程:
?
#includeint main() {FILE *f;char s[1000];f=fopen("infile","r");if (!f) return 1;while (fgets(s,1000,f)!=NULL) printf("%s",s);fclose(f);return 0;}
fget函數在遇到文件結束符eof時會返回NULL。程序依次讀入各行(本例中最長1,000個字符)并將其在標準輸出設備上顯示。注意,printf語句的格式字符串中并不包含\n ,這是因為fgets會在它讀入的每一行末尾加上一個\n 。所以,若某行的長度超出了限制(由fgets的第二個參數指定),您會發現它將不能被完整地顯示。
C 常見錯誤不要把fclose誤輸入成close。close函數是存在的,所以誤輸入成close也能通過編譯。如果只是打開或關閉幾個文件的話,程序甚至還表現為正常工作的樣子。但是,如果是在一個循環中打開和關閉文件的話,程序最后就會因耗盡可用的文件句柄或內存空間而崩潰,因為close沒有正確地將文件關閉。
評論
查看更多