C講課筆記:文件
文章目錄
一、文件打開與關閉
(一)概述
(二)文件打開函數 - fopen()
1、調用格式
2、參數與返回值說明
3、文件使用方式
(二)文件關閉函數 - fclose()
1、調用格式
2、參數說明
二、文件讀寫函數
三、案例演示
1、編寫程序 - 演示文件讀寫.c
2、運行程序,查看結果
四、課后作業
任務:將C盤Windows目錄下的win.ini文件復制到D盤根目錄,同時在控制臺輸出該文件內容。
本次我們準備學習C語言中的文件操作。內存里的數據要持久保存,那么就必然會涉及到文件的讀寫操作。這也是C語言學習中比較重要的一部分內容,希望大家理解并掌握。
一、文件打開與關閉
(一)概述
文件在進行讀寫操作之前要先打開,使用完畢要關閉。所謂打開文件,實際上是建立文件的各種有關信息,并使文件指針指向該文件,以便進行其它操作。關閉文件則斷開指針與文件之間的聯系,也就禁止再對該文件進行操作。在C語言中,文件操作都是由庫函數來完成的。
(二)文件打開函數 - fopen()
1、調用格式
文件指針名 = fopen(文件名, 使用文件方式);
2、參數與返回值說明
“文件指針名”必須是被說明為FILE 類型的指針變量
“文件名”是被打開文件的文件名
“使用文件方式”是指文件的類型和操作要求
“文件名”是字符串常量或字符串數組
FILE *fp; fp = fopen("test.txt", "r");
1
2
其意義是在當前目錄下打開文件test.txt,只允許進行“讀”操作,并使fp指向該文件。
FILE *fp; fp = fopen("c:\test.jpg", "rb")
1
2
打開C盤根目錄下文件test.jpg,只允許按二進制方式進行讀操作。兩個反斜線“\ ”中的第一個表示轉義字符,第二個表示根目錄。
3、文件使用方式
“rt”只讀打開一個文本文件,只允許讀數據
“wt”只寫打開或建立一個文本文件,只允許寫數據
“at”追加打開一個文本文件,并在文件末尾寫數據
“rb”只讀打開一個二進制文件,只允許讀數據
“wb”只寫打開或建立一個二進制文件,只允許寫數據
“ab”追加打開一個二進制文件,并在文件末尾寫數據
“rt+”讀寫打開一個文本文件,允許讀和寫
“wt+”讀寫打開或建立一個文本文件,允許讀寫
“at+”讀寫打開一個文本文件,允許讀,或在文件末追加數據
“rb+”讀寫打開一個二進制文件,允許讀和寫
“wb+”讀寫打開或建立一個二進制文件,允許讀和寫
“ab+”讀寫打開一個二進制文件,允許讀,或在文件末追加數據
在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應的處理。因此常用以下程序段打開文件:
if ((fp = fopen("c:\test.jpg", "rb") == NULL) { printf("error on open c:\test.jpg file!"); getch(); exit(1); }
1
2
3
4
5
如果返回指針為空,表示不能打開C盤根目錄下的test.jpg文件,則給出提示信息“error on open c:\test.jpg!”,下一行getch()的功能是從鍵盤輸入一個字符,但不在屏幕上顯示。該行作用是等待,只有當用戶從鍵盤敲任一字符才繼續執行后續語句。exit函數返回非零值表示有錯誤發生。
(二)文件關閉函數 - fclose()
1、調用格式
fclose(文件指針名);
2、參數說明
“文件指針名”必須是被說明為FILE 類型的指針變量。
二、文件讀寫函數
字符讀寫函數 :fgetc()和fputc()
字符串讀寫函數:fgets()和fputs()
數據塊讀寫函數:fread()和fwrite()
格式化讀寫函數:fscanf()和fprintf()
三、案例演示
1、編寫程序 - 演示文件讀寫.c
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2、運行程序,查看結果
第一次運行,查看結果
第二次運行,查看結果
說明:因為寫文件采用的是追加方式,所以文件c:\love.txt里最后會有兩次次輸入的內容。
四、課后作業
任務:將C盤Windows目錄下的win.ini文件復制到D盤根目錄,同時在控制臺輸出該文件內容。
控制臺
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。