c語言對文件的操作 c語言文件操作分為哪四步?
開發(fā)一個C語言程序有四個步驟:編輯、編譯、鏈接和運行。C語言程序可以在任何架構(gòu)的處理器上使用,只要那個架構(gòu)的處理器有相應(yīng)的C語言編譯器和庫,然后就可以把C源代碼編譯連接成目標(biāo)二進(jìn)制文件再運行。1.預(yù)處
開發(fā)一個C語言程序有四個步驟:編輯、編譯、鏈接和運行。
C語言程序可以在任何架構(gòu)的處理器上使用,只要那個架構(gòu)的處理器有相應(yīng)的C語言編譯器和庫,然后就可以把C源代碼編譯連接成目標(biāo)二進(jìn)制文件再運行。
1.預(yù)處理:輸入源程序并保存(。c文件)。
2.編譯:將源程序翻譯成目標(biāo)文件(。OBJ文件)。
3.鏈接:將目標(biāo)文件生成為可執(zhí)行文件(。
C語言的文件位置是fseek函數(shù)fseek(文件指針,位偏移量,起始點);起點c提供了文件的開始。
文件的當(dāng)前位置
文件末尾的三個值分別對應(yīng)0。
一個
2、位偏移量是多少字節(jié)而不是幾行。C語言好像不支持以線的形式移動指針。
示例:
如何使用C語言中的文件
一、文件指針的定義
FILE *fp//注意FILE的大寫。
二。打開文件
Fpfopen(#34(路徑)文件名,文件格式后綴#34,#34文件使用方法#34)//注意路徑是//而不是/
三。使用文檔的方法
1. "r "模式:
1.1打開文件進(jìn)行只讀操作,即只能從文件中讀取內(nèi)容。
1.2如果要操作的文件不存在,打開失敗。
1.3當(dāng)文件成功打開時,文件指針位于文件的開頭。
1.4打開文件后,文件中的原始內(nèi)容不會被清空。
1.5可以從文件的任何地方讀取內(nèi)容。
2.#34w#34模式:
2.1為 amp打開文件只寫 "操作,即只能寫入文件。
2.2如果要操作的文件不存在,創(chuàng)建一個新文件。
2.3文件打開成功后,文件指針位于文件的開頭。
2.4打開文件后,文件中的原始內(nèi)容將被清空。
2.5內(nèi)容可以寫入文件中的任意位置,寫入時會覆蓋原位置。
3.#34a#34模式:
3.1為 amp打開文件;"附加 "操作,即只能寫入文件。
3.2如果要操作的文件不存在,創(chuàng)建一個新文件。
3.3當(dāng)文件打開成功時,文件指針位于文件的末尾。
3.4打開文件后,文件中的原有內(nèi)容不會被清空。
3.5只能將內(nèi)容追加(寫入)到文件末尾。
4.#34r #34模式:
4.1為 amp打開文件讀和寫 "操作,即可以讀寫。
4.2如果要操作的文件不存在,打開失敗。。
4.3文件打開成功后,文件指針位于文件的開頭。
4.4打開文件后,文件中的原有內(nèi)容不會被清空。
4.5讀寫都可以在文件的任何地方進(jìn)行,寫的時候會覆蓋原位置的內(nèi)容。
5.#34w #34模式:
5.1為打開文件 "讀和寫 "操作,即可以讀寫。
5.2如果要操作的文件不存在,創(chuàng)建一個新文件。
5.3文件打開成功后,文件指針位于文件的開頭。
5.4打開文件后,文件中的原始內(nèi)容將被清空。
5.5讀寫內(nèi)容都可以在文件的任何地方進(jìn)行,寫的時候會覆蓋原位置的內(nèi)容。
6.#34a #34模式:
6.1為打開文件 "讀和寫 "操作,即可以讀寫。
6.2如果要操作的文件不存在,創(chuàng)建一個新文件。
6.3當(dāng)文件成功打開時,文件指針位于文件的末尾。
6.4打開文件后,文件中的原有內(nèi)容不會被清空。
6.5讀取內(nèi)容時,可以在任何位置進(jìn)行,但寫入內(nèi)容時,只會追加到文件末尾。
三。文件處理功能
A.fgetcfputc(字符)
Fgetc的意思是從文件指針流指向的文件中讀取一個字符。讀取一個字節(jié)后,光標(biāo)位置向后移動一個字節(jié)。
Fgetc格式
文件*流
Fputc的意思是將字符ch寫到文件指針fp所指向的文件的當(dāng)前寫指針的位置。
Fputc格式
fputc(char c,F(xiàn)ILE *fp)
B.fgetsfputs(字符串)
fgets函數(shù)從指定的流中讀取數(shù)據(jù),一次讀取一行。從指定的流中讀取一行,并將其存儲在str指向的字符串中。它在讀取(n-1)個字符時停止,或者在讀取一個新行字符時停止,或者在到達(dá)文件末尾時停止,視具體情況而定。
Fgets格式:
fgetc(char *str,int n,F(xiàn)ILE *stream)
Fputs是一個函數(shù),具有將字符串寫入指定文件的功能(字符串結(jié)束標(biāo)記 0 不是自動寫入的)。成功寫入一個字符串后,文件的位置指針會自動后移,函數(shù)返回值為非負(fù)整數(shù);否則,返回EOF(符號常量,其值為-1)。
Fputs格式:
fputs(const char *str,F(xiàn)ILE *stream)
返回值:如果出現(xiàn)錯誤,該函數(shù)返回一個非負(fù)值和EOF(-1)。
(1)str:這是一個數(shù)組,包含描述了以要寫入的空字符結(jié)束的字符序列。
(2)stream:指向文件對象的指針,標(biāo)識要寫入字符串的流。
C.讀取和寫入數(shù)據(jù)塊
freadfwrite
Fread從給定的輸入流中讀取count個對象到數(shù)組緩沖區(qū)中(相當(dāng)于調(diào)用fgetc來計算每個對象的計數(shù)次數(shù)),將緩沖區(qū)視為無符號char數(shù)組,并按順序保存結(jié)果。由流的文件位置指示器向前讀取的字節(jié)數(shù)。
如果出現(xiàn)錯誤,則流的文件位置指示符的位置不確定。如果最后一個元素沒有被完全讀取,它的值是不確定的。
Fread格式:
fread( void *buffer,size_t size,size_t count,F(xiàn)ILE *stream)
Fwrite()是C語言標(biāo)準(zhǔn)庫中的一個文件處理函數(shù)。它的作用是將幾個數(shù)據(jù)塊寫入指定的文件,如果執(zhí)行成功,將返回實際寫入的數(shù)據(jù)塊的個數(shù)。這個函數(shù)對二進(jìn)制形式的文件進(jìn)行操作,不限于文本文件。
Fwrite格式:
fwrite(const void *ptr,size_t size,size_t nmemb,F(xiàn)ILE *stream)
返回值:返回實際寫入的數(shù)據(jù)塊數(shù)。
(1)buffer:是指針,對于fwrite,是獲取數(shù)據(jù)的地址;
(2)size:要寫入的單字節(jié)數(shù);
要寫入的數(shù)據(jù)項的數(shù)量,以大小字節(jié)為單位,單位為(3);
(4)目標(biāo)文件指針;
(5)返回實際寫入的數(shù)量計數(shù)數(shù)據(jù)項。
D.fscanffprintf
fscanf的作用是根據(jù)數(shù)據(jù)格式從輸入流中讀取數(shù)據(jù),存儲在自變量中,遇到空格和換行符時結(jié)束。
Fscanf格式:
fscanf(文件*流,常量字符*格式,[參數(shù)...])
函數(shù)的作用是:根據(jù)指定的格式將數(shù)據(jù)(參數(shù))寫入輸出流。
Fprintf格式:
fprintf(文件*流,常量字符*格式,[參數(shù)])
Stream -這是一個指向文件對象的指針,用來標(biāo)識流。
format——這是一個C字符串,包含要寫入流中的stre。am中的文本。它可以包含嵌入的格式標(biāo)記,這些標(biāo)記可以由后續(xù)附加參數(shù)中指定的值替換,并根據(jù)需要進(jìn)行格式化。
格式標(biāo)簽屬性為% [flags] [width] [。精度][長度]說明符。
[參數(shù)]:附加參數(shù)列表
注意,當(dāng)格式中有n個閱讀長度時,系統(tǒng)將為 0 。如果要讀10,n應(yīng)該定義為10 ^ 1。
記住在每次引用文件后關(guān)閉打開的文件。
Fclose(fp)//fp是定義的文件指針。