3、關閉檔案
總結開啟檔案函式——fopen(const char *, const char *)
第乙個引數:檔案路徑(1、相對路徑 2、絕對路徑)例如
1、相對路徑(和.c檔案在同一檔案目錄下,可直接寫檔名稱.檔案型別)
fopen
("text.txt"
,"w");
2、絕對路徑
fopen
("d:/studyfile/text.txt"
,"w");
1、"r"——開啟乙個檔案,可以讀取檔案
2、"w"——開啟乙個檔案,可以寫入檔案,如果沒有該檔案則建立改檔案,如果有則把檔案裡面原有內容刪除後再寫入
3、"a"——開啟乙個檔案,如果沒有該檔案則建立改檔案,如果有則在檔案後面追加內容
4、"r+"、"w+"、"a+"——即可讀也可寫
5、"rb"、"wb"、"ab"、"rb+"、"wb+"、"ab+"——與前面的模式相似,不過是以二進位制模式開啟而非文字模式
其中如果檔案開啟成功,則函式fopen(const char *, const char *)將返回乙個檔案指標(file *),如果檔案開啟失敗,則返回null
這一步驟是檔案操作的重要部分,簡單來說其實就是把「一堆內容」寫入檔案,或者從檔案中獲取「一堆內容」。
#include
#include
#include
intmain()
fclose
(fp)
;//關閉檔案,每次開啟檔案一定要關閉
file *read=
fopen
("text.txt"
,"r");
//開啟檔案,以讀的方式操作檔案
char key;
while
((key=
fgetc
(read))!=
eof)
fclose
(fp)
;return0;
}
這裡涉及到兩個檔案操作函式fputc(int, file *)和fgetc(file *)
fputc函式將使用者指定的內容以單字元的方式寫入檔案中
而fgetc函式將檔案中的內容以單字元的方式取出
#include
#include
intmain()
這裡涉及到兩個檔案操作函式fgets(char *, int, file *)和fputs(const char *, file *)
fputs、fgets與fputc和fgets的功能相似,但fputs和fgets是以字串的方式對檔案內容進行操作
值得注意的是:fets()函式在達到字元最大數目之前讀完了一整行,它將在字串的空字元之前新增乙個換行符以標識一行結束
#include
#include
struct person
;int
main()
,,};
//初始化結構體
file *fp=
fopen
("text.txt"
,"w");
for(
int i=
0;i<
3;i++
)fclose
(fp)
;struct person person1;
file *read=
fopen
("text.txt"
,"r");
while
(fscanf
(read,
"%s\t%d\n"
,person1.name,
&person1.age)
!=eof
)fclose
(read)
;return0;
}
這裡涉及到兩個檔案操作函式fprintf(file *, const char *, …)和fscanf(file *, const char *, …)
fprintf、fscanf和printf、scanf的功能相似,只是第乙個引數是乙個檔案指標
值得注意的是:eof是檔案結束識別符號(end of file)
#include
#include
struct person
;int
main()
,,};
//宣告並定義了乙個含有三個結構體的結構型別陣列
file *fp=
fopen
("text.txt"
,"w");
fwrite
(&person[0]
,sizeof
(struct person),3
,fp)
;//寫入
fclose
(fp)
; file *read=
fopen
("text.txt"
,"r");
struct person person2[3]
;fread
(&person2[0]
,sizeof
(struct person),3
,read)
;//獲取
for(
int i=
0;i<
3;i++
)fclose
(read)
;return0;
}
這裡涉及到兩個檔案操作函式**fwrite(const void *, size_t, size_t, file *)*和fread(void , size_t, size_t, file )
其中fwrite和fread的引數個數和意義一樣——
第乙個引數:寫入內容的首位址
第二個引數:每乙個資料的大小,以位元組為單位
第三個引數:寫入檔案的資料個數,如上例子,操作三個結構體
第四個引數:檔案指標
值得注意的是:用該方式讀寫檔案時,檔案裡面的(中文)內容可能是亂碼,但這是正常現象且不影響我們進行檔案操作,但如果我們需要檢視或者平時要用到檔案裡面的內容時,不建議採用這種方式讀寫檔案
簡簡單單
fclose
(file *
);
本文列舉了10個檔案操作函式(其實還有其它檔案操作函式,不過一般用的很少),其中fopen和fclose函式分別用來開啟、關閉檔案,而(fputc fgetc)、(fputs fgets)、(fprintf fscanf)、(fwrite fread)函式則用來讀寫檔案。
其中把文字內容寫進檔案的函式是:fputc、fputs、fprintf、fwrite
其中獲取檔案文字內容的函式是:fgetc、fgets、fscanf、fread
值得注意的是:獲取檔案文字內容的函式並不能把文字內容顯示到控制台黑視窗上,但如果我們想把文字裡面的文字內容顯示到控制台上,肯定得先用fputc等函式來獲取檔案裡面的內容,再用gets等其它標準庫函式把檔案裡面的內容顯示到控制台上
C語言檔案操作(入門級)
今天c語言實訓第一天剛剛接觸檔案操作,從一臉蒙蔽到基本會用僅僅只能分享給新手。套路基本一直,若想用檔案操作基本都有以下內容 file fp if fp fopen admin.txt w null feile fopen const char filename,const char mode 小括號...
c語言簡單入門之檔案操作
檔案的開啟與關閉 檔案的操作要求引入標頭檔案stdio.h 1,檔案型指標變數 file fp fp指的是乙個指向file型別結構體的指標變數。我們使fp指向某乙個檔案的結構體變數,從而通過該結構體變數中的檔案資訊能夠訪問該檔案。2,file型別的陣列 file f 5 定義了乙個結構體陣列f,它有...
c語言檔案操作
rt null ch fgetc fp while ch eof fclose fp 本 例程式的功能是從檔案中逐個讀取字元,在螢幕上顯示。程式定義了檔案指標fp,以讀文字檔案方式開啟檔案 d jrzh example ex1 1.c 並使fp指向該檔案。如開啟檔案出錯,給出提示並退出程式。程式第1...