c語(yǔ)言操作文本的基本使用方法
字符讀寫函數(shù) :fgetc和fputc
字符串讀寫函數(shù):fgets和fputs
數(shù)據(jù)塊讀寫函數(shù):freed和fwrite
格式化讀寫函數(shù):fscanf和fprinf
1.字符讀寫:
fgetc函數(shù)的功能是從指定的文件中讀一個(gè)字符,函數(shù)調(diào)用的形式為:
字符變量=fgetc(文件指針);
fputc函數(shù)的功能是把一個(gè)字符寫入指定的文件中,函數(shù)調(diào)用的形式為:
fputc(字符量,文件指針);
2.字符串讀寫
讀字符串函數(shù)fgets
函數(shù)的功能是從指定的文件中讀一個(gè)字符串到字符數(shù)組中,函數(shù)調(diào)用的形式為:
fgets(字符數(shù)組名,n,文件指針);
寫字符串函數(shù)fputs
fputs函數(shù)的功能是向指定的文件寫入一個(gè)字符串,其調(diào)用形式為:
fputs(字符串,文件指針);
3.數(shù)據(jù)塊讀寫
讀數(shù)據(jù)塊函數(shù)調(diào)用的一般形式為:
fread(buffer,size,count,fp);
寫數(shù)據(jù)塊函數(shù)調(diào)用的一般形式為:
fwrite(buffer,size,count,fp);
4.格式化讀寫
fscanf函數(shù),fprintf函數(shù)與前面使用的scanf和printf函數(shù)的功能相似,都是格式化讀寫函數(shù)。兩者的區(qū)別在于fscanf函數(shù)和fprintf函數(shù)的讀寫對(duì)象不是鍵盤和顯示器,而是磁盤文件。
這兩個(gè)函數(shù)的調(diào)用格式為:
fscanf(文件指針,格式字符串,輸入表列);
fprintf(文件指針,格式字符串,輸出表列);
文件定位
移動(dòng)文件內(nèi)部位置指針的函數(shù)主要有兩個(gè),即rewind函數(shù)和fseek函數(shù)。
rewind函數(shù)前面已多次使用過(guò),其調(diào)用形式為:
rewind(文件指針);
它的功能是把文件內(nèi)部的位置指針移到文件首。
下面主要介紹fseek函數(shù)。fseek函數(shù)用來(lái)移動(dòng)文件內(nèi)部位置指針,其調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn));
其中:
“文件指針”指向被移動(dòng)的文件。
“位移量”表示移動(dòng)的字節(jié)數(shù),要求位移量是long型數(shù)據(jù),以便在文件長(zhǎng)度大于64KB時(shí)不會(huì)出錯(cuò)。當(dāng)用常量表示位移量時(shí),要求加后綴“L”。
“起始點(diǎn)”表示從何處開(kāi)始計(jì)算位移量,規(guī)定的起始點(diǎn)有三種:文件首,當(dāng)前位置和文件尾。其表示方法如下表。
起始點(diǎn) 表示符號(hào) 數(shù)字表示
文件首 SEEK_SET 0
當(dāng)前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
例如:
fseek(fp,100L,0);
其意義是把位置指針移到離文件首100個(gè)字節(jié)處。
還要說(shuō)明的是fseek函數(shù)一般用于二進(jìn)制文件。在文本文件中由于要進(jìn)行轉(zhuǎn)換,故往往計(jì)算的位置會(huì)出現(xiàn)錯(cuò)誤。
c語(yǔ)言中常用的文件檢測(cè)函數(shù)有以下幾個(gè)。
文件結(jié)束檢測(cè)函數(shù)feof函數(shù)
調(diào)用格式:
feof(文件指針);
功能:判斷文件是否處于文件結(jié)束位置,如文件結(jié)束,則返回值為1,否則為0。
讀寫文件出錯(cuò)檢測(cè)函數(shù)
ferror函數(shù)調(diào)用格式:
ferror(文件指針);
功能:檢查文件在用各種輸入輸出函數(shù)進(jìn)行讀寫時(shí)是否出錯(cuò)。如ferror返回值為0表示未出錯(cuò),否則表示有錯(cuò)。
文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置0函數(shù)
clearerr函數(shù)調(diào)用格式:
clearerr(文件指針);
功能:本函數(shù)用于清除出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志,使它們?yōu)?值。
- C語(yǔ)言實(shí)現(xiàn)修改文本文件中特定行的實(shí)現(xiàn)代碼
- C語(yǔ)言采用文本方式和二進(jìn)制方式打開(kāi)文件的區(qū)別分析
- 用C語(yǔ)言實(shí)現(xiàn)從文本文件中讀取數(shù)據(jù)后進(jìn)行排序的功能
- C語(yǔ)言中使用lex統(tǒng)計(jì)文本文件字符數(shù)
- C語(yǔ)言實(shí)現(xiàn)文本編輯器系統(tǒng)
- 交換兩個(gè)文本內(nèi)容的C語(yǔ)言代碼
- C語(yǔ)言實(shí)現(xiàn)文本文件/二進(jìn)制文件格式互換
- C語(yǔ)言將日期、時(shí)間保存到文本文件中的方法
相關(guān)文章
C++ Boost Random隨機(jī)函數(shù)詳解
Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱2022-11-11C++11 std::shared_ptr總結(jié)與使用示例代碼詳解
這篇文章主要介紹了C++11 std::shared_ptr總結(jié)與使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06C++ Opencv自寫函數(shù)實(shí)現(xiàn)膨脹腐蝕處理技巧
這篇文章主要介紹了C++ Opencv 自寫函數(shù)實(shí)現(xiàn)膨脹腐蝕處理,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10C語(yǔ)言單鏈隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言單鏈隊(duì)列的表示與實(shí)現(xiàn),對(duì)于研究數(shù)據(jù)結(jié)構(gòu)與算法的朋友來(lái)說(shuō)很有參考借鑒價(jià)值,需要的朋友可以參考下2014-07-07C語(yǔ)言文件操作實(shí)現(xiàn)數(shù)據(jù)持久化(幫你快速了解文件操作函數(shù))
持久數(shù)據(jù)其實(shí)就是將數(shù)據(jù)保存到數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言文件操作實(shí)現(xiàn)數(shù)據(jù)持久化(幫你快速了解文件操作函數(shù))的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單推箱子游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02