文本文件
C中的文本文件很簡單,不難掌握。所有的文本文件操作函數(shù)和相關類型都由stdio庫提供。
當您的C程序需要文本輸入輸出(I/O)功能,且只有一個信息輸入來源和一個輸出目標時,可以使用stdin(標準輸入)和stdout(標準輸出)進行編程,然后在命令行使用輸入輸出重定向,為各信息流指定不同的來源或目標。
- printf - 格式化輸出到標準輸出設備
- scanf - 從標準輸入設備格式化輸入
- puts - 向標準輸出設備輸出一個字符串
- gets - 從標準輸入設備讀入一個字符串
- putc - 向標準輸出設備輸出一個字符
- getc, getchar - 從標準輸入設備讀入一個字符
標準輸入輸出的優(yōu)點是易于使用。同時,I/O重定向的功能也非常強大。例如,您要編寫一個程序從標準輸入讀取信息并統(tǒng)計總字符個數(shù):
?
#include\ #include void main() {char s[1000];int count=0;while (gets(s)) count += strlen(s);printf("%d n",count);}
錄入上面的程序并運行。運行時程序會等待鍵盤輸入,請鍵入幾行字符,然后用CTRL-D (eof)通知程序輸入結束。gets函數(shù)不斷讀取輸入行,直至檢測到eof,此時返回0并結束while循環(huán)。按下CTRL-D后,您將在標準輸出設備(屏幕)上看到字符的計數(shù)。(可用man gets命令或者從編譯器文檔獲得更多關于gets函數(shù)的知識。)
現(xiàn)在假設您要統(tǒng)計某個文件的字符個數(shù)。若上面代碼編譯生成的可執(zhí)行文件名為xxx,您可以執(zhí)行以下命令:
?
xxx < filename
此命令將文件名為filename的文件內容(而非鍵盤輸入的內容)傳給程序。也可以使用管道獲得同樣的結果:
?
cat < filename | xxx
還可以將輸出重定向到一個文件:
?
xxx < filename > out
此命令將程序得出的字符計數(shù)輸出到一個名為out的文本文件。
有時需要直接使用文本文件。例如,要打開并讀寫某個特定的文件。您的程序可能要同時操作多個輸入輸出流,或者要在運行期間根據(jù)需要載入和保存數(shù)據(jù)文件或配置文件(如文本編輯器)。這時就要使用stdio中的文件I/O函數(shù):
- fopen - 打開一個文本文件
- fclose - 關閉一個文本文件
- feof - 檢測文件eof結束標記
- fprintf - 格式化輸出到一個文件
- fscanf - 從一個文件讀取格式化輸入
- fputs - 向文件輸出一個字符串
- fgets - 從文件讀入一個字符串
- fputc - 向文件輸出一個字符
- fgetc - 從文件讀入一個字符
評論
查看更多