C++實(shí)現(xiàn)讀寫文件的示例代碼
1.讀取
1.1逐行讀取
void readTxt(string file) { ifstream ifs; ifs.open(file); //將文件流對(duì)象與文件關(guān)聯(lián)起來,如果已經(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ì)象與文件連接起來 assert(ifs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 char c; ifs >> std::noskipws; //清除skipws標(biāo)識(shí),不忽略空白符(Tab、空格、回車和換行) while (!infile.eof()) { infile>>c; cout<<c<<endl; } infile.close(); //關(guān)閉文件輸入流 }
2.寫入
2.1逐行追加
void writeLineToTxt(string file,string line) { ofstream ofs(file,ios::out|ios::app); //以輸出追加方式打開文件,不存在則創(chuàng)建 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs<<line<<endl; //寫入一行 ofs.close(); }
2.2逐字符追加
void writeCharToTxt(string file,char c) { ofstream ofs(file,ios::out|ios::app); //以輸出追加方式打開文件,不存在則創(chuàng)建 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs<<c; //寫入一個(gè)字符 ofs.close(); }
2.3偏移指定字節(jié)寫入
void writeToTxtOffset(string file, int offset, string content) { ofstream ofs(file, ios::out | ios::in); //以不清空方式打開文件,不存在則創(chuàng)建。注意:不要使用ios::app模式打開,因?yàn)橐欢▽懺诤竺妫瑂eekp也無效 assert(ofs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行 ofs.seekp(offset, ios::beg); //從流開始位置偏移 ofs << content; //寫入內(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)讀寫文件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++實(shí)現(xiàn)讀寫文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
opencv配置的完整步驟(win10+VS2015+OpenCV3.1.0)
OpenCV是計(jì)算機(jī)視覺中經(jīng)典的專用庫,其支持多語言、跨平臺(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.移除鏈表元素),本篇文章通過逆向分析的案例,講解了該項(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ì)象的地址,下面通過本文給大家介紹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)存同步模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09