C++實(shí)現(xiàn)讀寫(xiě)文件的示例代碼
1.讀取
1.1逐行讀取
void readTxt(string file) { ifstream ifs; ifs.open(file); //將文件流對(duì)象與文件關(guān)聯(lián)起來(lái),如果已經(jīng)關(guān)聯(lián)則調(diào)用失敗 assert(ifs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 string s; while(getline(ifs,s)) //行分隔符可以顯示指定,比如按照分號(hào)分隔getline(infile,s,';') { cout<<s<<endl; } ifs.close(); //關(guān)閉文件輸入流 }
1.2逐字符讀取
void readTxt(string file) { ifstream ifs; ifs.open(file.data()); //將文件流對(duì)象與文件連接起來(lái) assert(ifs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 char c; ifs >> std::noskipws; //清除skipws標(biāo)識(shí),不忽略空白符(Tab、空格、回車(chē)和換行) while (!infile.eof()) { infile>>c; cout<<c<<endl; } infile.close(); //關(guān)閉文件輸入流 }
2.寫(xiě)入
2.1逐行追加
void writeLineToTxt(string file,string line) { ofstream ofs(file,ios::out|ios::app); //以輸出追加方式打開(kāi)文件,不存在則創(chuàng)建 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs<<line<<endl; //寫(xiě)入一行 ofs.close(); }
2.2逐字符追加
void writeCharToTxt(string file,char c) { ofstream ofs(file,ios::out|ios::app); //以輸出追加方式打開(kāi)文件,不存在則創(chuàng)建 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs<<c; //寫(xiě)入一個(gè)字符 ofs.close(); }
2.3偏移指定字節(jié)寫(xiě)入
void writeToTxtOffset(string file, int offset, string content) { ofstream ofs(file, ios::out | ios::in); //以不清空方式打開(kāi)文件,不存在則創(chuàng)建。注意:不要使用ios::app模式打開(kāi),因?yàn)橐欢▽?xiě)在后面,seekp也無(wú)效 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs.seekp(offset, ios::beg); //從流開(kāi)始位置偏移 ofs << content; //寫(xiě)入內(nèi)容 ofs.close(); }
3.驗(yàn)證
#include <assert.h> #include <iostream> #include <fstream> #include <string> int main() { writeCharToTxt("D:\\test.txt",'v'); writeToTxtOffset("D:\\test.txt",1,"dablelv"); //注意Windows環(huán)境下文件路徑使用雙反斜杠表示 }
文件D:\test.txt中內(nèi)容如下:
vdablelv
以上就是C++實(shí)現(xiàn)讀寫(xiě)文件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++實(shí)現(xiàn)讀寫(xiě)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
opencv配置的完整步驟(win10+VS2015+OpenCV3.1.0)
OpenCV是計(jì)算機(jī)視覺(jué)中經(jīng)典的專用庫(kù),其支持多語(yǔ)言、跨平臺(tái),功能強(qiáng)大,這篇文章主要給大家介紹了關(guān)于opencv配置(win10+VS2015+OpenCV3.1.0)的相關(guān)資料,需要的朋友可以參考下2021-06-06C++逆向分析移除鏈表元素實(shí)現(xiàn)方法詳解
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(203.移除鏈表元素),本篇文章通過(guò)逆向分析的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2022-11-11淺析C/C++ 中return *this和return this的區(qū)別
return *this返回的是當(dāng)前對(duì)象的克隆或者本身,return this返回當(dāng)前對(duì)象的地址,下面通過(guò)本文給大家介紹C/C++ 中return *this和return this的區(qū)別,感興趣的朋友一起看看吧2019-10-10QT利用QPdfWriter實(shí)現(xiàn)繪制PDF(支持表單輸出)
這篇文章主要為大家詳細(xì)介紹了QT如何利用QPdfWriter實(shí)現(xiàn)繪制PDF,并可以支持表單輸出。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01詳解C++中的內(nèi)存同步模式(memory order)
這篇文章主要介紹了C++中的內(nèi)存同步模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09