C語(yǔ)言中文件處理全攻略詳解
C 語(yǔ)言中的文件處理
在 C 語(yǔ)言中,您可以通過(guò)聲明類型為 FILE
的指針,并使用 fopen()
函數(shù)來(lái)創(chuàng)建、打開(kāi)、讀取和寫入文件:
FILE *fptr; fptr = fopen(filename, mode);
FILE
基本上是一個(gè)數(shù)據(jù)類型,我們需要?jiǎng)?chuàng)建一個(gè)指針變量來(lái)使用它 (fptr
)。現(xiàn)在,這行代碼并不重要。它只是在處理文件時(shí)需要的東西。
要實(shí)際打開(kāi)文件,請(qǐng)使用 fopen()
函數(shù),它接受兩個(gè)參數(shù):
參數(shù) | 描述 |
---|---|
filename | 要打開(kāi)的實(shí)際文件的名稱,例如 filename.txt |
mode | 一個(gè)表示您想對(duì)文件做什么(讀取、寫入或追加)的單個(gè)字符: |
w | 寫入文件 |
a | 將新數(shù)據(jù)追加到文件 |
r | 從文件中讀取 |
創(chuàng)建文件
要?jiǎng)?chuàng)建文件,可以在 fopen()
函數(shù)中使用 w 模式。
w 模式用于寫入文件。但是,如果文件不存在,它將為您創(chuàng)建一個(gè)文件:
FILE *fptr; // 創(chuàng)建一個(gè)文件 fptr = fopen("filename.txt", "w"); // 關(guān)閉文件 fclose(fptr);
注意:如果未指定其他信息,文件將與您的其他 C 文件位于同一目錄中。
在我們的電腦上,它看起來(lái)像這樣:
運(yùn)行示例 »
提示:如果您想在特定文件夾中創(chuàng)建文件,只需提供絕對(duì)路徑:
fptr = fopen("C:\directoryname\filename.txt", "w");
關(guān)閉文件
您是否在上面的示例中注意到了 fclose()
函數(shù)
當(dāng)我們完成后,它將關(guān)閉文件
它被認(rèn)為是良好的實(shí)踐,因?yàn)樗梢源_保:
- 更改已正確保存
- 其他程序可以使用該文件(如果您愿意)
- 清理不必要的內(nèi)存空間
C 語(yǔ)言中的文件寫入
w 模式表示文件已打開(kāi)用于寫入。要將內(nèi)容插入其中,可以使用 fprintf()
函數(shù),并添加指針變量 (我們示例中的 fptr
) 和一些文本:
FILE *fptr; // 以寫入模式打開(kāi)文件 fptr = fopen("filename.txt", "w"); // 將一些文本寫入文件 fprintf(fptr, "Some text"); // 關(guān)閉文件 fclose(fptr);
注意:如果您寫入一個(gè)已經(jīng)存在的文件,則舊內(nèi)容將被刪除,并插入新內(nèi)容。這一點(diǎn)很重要,因?yàn)槟赡軙?huì)意外擦除現(xiàn)有內(nèi)容。
例如:
fprintf(fptr, "Hello World!");
因此,當(dāng)我們?cè)谟?jì)算機(jī)上打開(kāi)文件時(shí),它顯示 “Hello World!”
而不是 “Some text”
將內(nèi)容追加到文件
如果您想在不刪除舊內(nèi)容的情況下將內(nèi)容添加到文件,可以使用 a 模式。
a 模式將內(nèi)容追加到文件末尾:
FILE *fptr; // 以追加模式打開(kāi)文件 fptr = fopen("filename.txt", "a"); // 將一些文本追加到文件 fprintf(fptr, "\nHi everybody!"); // 關(guān)閉文件 fclose(fptr);
因此,當(dāng)我們?cè)谟?jì)算機(jī)上打開(kāi)文件時(shí),它看起來(lái)像這樣:
Some text
Hi everybody!
注意:當(dāng)使用 a 模式時(shí),fprintf()
函數(shù)不會(huì)添加新行。如果您希望在追加的內(nèi)容之前添加新行,則需要在 fprintf()
函數(shù)中手動(dòng)添加它,如下所示:
fprintf(fptr, "\n%s", "Hi everybody!");
到此這篇關(guān)于C語(yǔ)言中文件處理全攻略詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言文件處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言中strcpy和strcat的使用和模擬實(shí)現(xiàn)
strcpy()?函數(shù)是?C語(yǔ)言中一個(gè)非常重要的字符串處理函數(shù),其功能是將一個(gè)字符串復(fù)制到另一個(gè)字符串中,strcat函數(shù)可以將一個(gè)字符串拼接到另一個(gè)字符串的末尾,本文給大家介紹了C語(yǔ)言中strcpy和strcat的使用和模擬實(shí)現(xiàn),需要的朋友可以參考下2024-03-03C++ 使用PrintWindow實(shí)現(xiàn)窗口截圖功能
這篇文章主要介紹了C++ 如何使用PrintWindow實(shí)現(xiàn)窗口截圖功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08C++中CString string char* char 之間的字符轉(zhuǎn)換(多種方法)
在寫程序的時(shí)候,我們經(jīng)常遇到各種各樣的類型轉(zhuǎn)換,比如 char* CString string 之間的互相轉(zhuǎn)換,這里簡(jiǎn)單為大家介紹一下,需要的朋友可以參考下2017-09-09c語(yǔ)言中字符串函數(shù)(庫(kù)函數(shù)使用)和模擬實(shí)現(xiàn)圖文教程
C語(yǔ)言中對(duì)字符和字符串的處理很是頻繁,但是C語(yǔ)言本身并沒(méi)有字符串類型,這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中字符串函數(shù)(庫(kù)函數(shù)使用)和模擬實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-01-01基于C++中常見(jiàn)內(nèi)存錯(cuò)誤的總結(jié)
本篇文章是對(duì)C++中常見(jiàn)的內(nèi)存錯(cuò)誤進(jìn)行了總結(jié)介紹。需要的朋友參考下2013-05-05opencv 做人臉識(shí)別 opencv 人臉匹配分析
opencv 人臉識(shí)別通過(guò)級(jí)聯(lián)分類器對(duì)特征的分級(jí)篩選來(lái)確定是否是人臉,每個(gè)節(jié)點(diǎn)的正確識(shí)別率很高,但正確拒絕率很低,任一節(jié)點(diǎn)判斷沒(méi)有人臉特征則結(jié)束運(yùn)算,宣布不是人臉2012-11-11C++類中const修飾的成員函數(shù)及日期類小練習(xí)
將const修飾的“成員函數(shù)”稱之為const成員函數(shù),const修飾類成員函數(shù),表明在該成員函數(shù)中不能對(duì)類的任何成員進(jìn)行修改,下面這篇文章主要給大家介紹了關(guān)于C++類中const修飾的成員函數(shù)及日期類小練習(xí)?的相關(guān)資料,需要的朋友可以參考下2023-01-01C++ 內(nèi)聯(lián)函數(shù)inline案例詳解
這篇文章主要介紹了C++ 內(nèi)聯(lián)函數(shù)inline案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09