C語言基礎部分-文件操作
文件操作
基本說明
文件:
文件指存儲在外部介質(如磁盤磁帶)上數據的集合。 操作系統是以文件為單位對數據進行管理的。
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
perror
語法: #include
1
2
3
perror()函數打印str(字符串)和一個相應的執行定義的錯誤消息到全局變量errno中.
#ifndef _FILE_DEFINED struct _iobuf { char *_ptr;//下一個要讀取的字符的地址 int _cnt;//剩余字符 char *_base;//緩沖區基地址 int _flag;//文件標識位 int _file;//文件描述符 int _charbuf;// int _bufsiz;//緩沖區大小 char *_tmpfname; }; typedef struct _iobuf FILE; #define _FILE_DEFINED #endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
“r” (只讀)為輸入打開一個文本文件“w” (只寫)為輸出打開一個文本文件“a” (追加)向文本文件尾增加數據“rb” (只讀)為輸入打開一個二進制文件“wb” (只寫)為輸出打開一個二進制文件"ab“ (追加)向二進制文件尾增加數據"r+“ (讀寫)為讀/寫打開一個文本文件"w+” (讀寫)為讀/寫建立一個新的文本文件"a+” (讀寫)為讀/寫打開一個文本文件"rb+“ (讀寫)為讀/寫打開一個二進制文件“wb+“ (讀寫)為讀/寫建立一個新的二進制文件“ab+” (讀寫)為讀/寫打開一個二進制文件
文件函數:
分類 函數名 功能 打開文件 fopen() 打開文件 關閉文件 fclose() 關閉文件 文件定位 fseek() 改變文件位置指針的位置 Rewind() 使文件位置指針重新至于文件開頭 Ftell() 返回文件位置指針的當前值 文件狀態 feof() 若到文件末尾,函數值為真 Ferror() 若對文件操作出錯,函數值為真 Clearerr() 使ferror和feof()函數值置零 文件讀寫 fgetc(),getc() 從指定文件取得一個字符 fputc(),putc() 把字符輸出到指定文件 fgets() 從指定文件讀取字符串 fputs() 把字符串輸出到指定文件 fread() 從指定文件中讀取數據項 fwrite() 把數據項寫到指定文件中 fscanf() 從指定文件按格式輸入數據 fprintf() 按指定格式將數據寫到指定文件中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fclose(文件指針);
函數功能: 使文件指針變量不指向該文件,也就是文件指針變量與文件“脫鉤”,此后不能再通過該指針對原來與其相聯系的文件進行讀寫操作。
返回值:關閉成功返回值為0;否則返回EOF(-1) 。
fputc函數
函數調用:fputc ( ch,fp ) ;
函數功能: 將字符(ch的值)輸出到fp所指向的文件中去。
返回值:如果輸出成功,則返回值就是輸出的字符;如果輸出失敗,則返回一個EOF。
fgetc函數
函數調用:ch=fgetc(fp);
函數功能: 從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。
返回值:讀取成功一個字符,賦給ch。如果遇到文件結束符,返回一個文件結束標志EOF 。
#include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 注意 關閉文件 主動刷新 緩沖區寫滿 #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 fwrite和fread #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ##文件使用方式 文件使用方式 含 義 “r” (只讀)為輸入打開一個文本文件 “w” (只寫)為輸出打開一個文本文件 “a” (追加)向文本文件尾增加數據 “rb” (只讀)為輸入打開一個二進制文件 “wb” (只寫)為輸出打開一個二進制文件 "ab“ (追加)向二進制文件尾增加數據 "r+“ (讀寫)為讀/寫打開一個文本文件 "w+” (讀寫)為讀/寫建立一個新的文本文件 "a+” (讀寫)為讀/寫打開一個文本文件 "rb+“ (讀寫)為讀/寫打開一個二進制文件 “wb+“ (讀寫)為讀/寫建立一個新的二進制文件 “ab+” (讀寫)為讀/寫打開一個二進制文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 區別 r+ 寫入\n .實際存儲的是\r\n 讀取時,\r\n會變成\n rb+ 寫入\n.實際存儲的是\n 讀取時,\n讀取出來的是\n fseek函數(一般用于二進制文件) 函數功能:改變文件的位置指針。 函數調用形式:fseek(文件類型指針,位移量,起始點)起始點: 文件開頭 SEEK_SET 0 文件當前位置 SEEK_CUR 1 文件末尾 SEEK_END 2 位移量:以起始點為基點,向前移動的字節數。一般要求為long型。 fseek函數應用舉例 fseek(fp,100L,0); 將位置指針移到離文件頭100個字節處。 fseek(fp,50L, 1); 將位置指針移到離當前位置50個字節處。 fseek(fp,50L, 2); 將位置指針從文件末尾處向后退10個字節。 1 2 3 4 5 6 7 8 9 10 C 語言
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。