C++實(shí)現(xiàn)讀寫文件的示例代碼
1.讀取
1.1逐行讀取
void readTxt(string file)
{
ifstream ifs;
ifs.open(file); //將文件流對象與文件關(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)) //行分隔符可以顯示指定,比如按照分號分隔getline(infile,s,';')
{
cout<<s<<endl;
}
ifs.close(); //關(guān)閉文件輸入流
}
1.2逐字符讀取
void readTxt(string file)
{
ifstream ifs;
ifs.open(file.data()); //將文件流對象與文件連接起來
assert(ifs.is_open()); //若失敗,則輸出錯(cuò)誤消息,并終止程序運(yùn)行
char c;
ifs >> std::noskipws; //清除skipws標(biāo)識,不忽略空白符(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)讀寫文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
opencv配置的完整步驟(win10+VS2015+OpenCV3.1.0)
OpenCV是計(jì)算機(jī)視覺中經(jīng)典的專用庫,其支持多語言、跨平臺,功能強(qiáng)大,這篇文章主要給大家介紹了關(guān)于opencv配置(win10+VS2015+OpenCV3.1.0)的相關(guān)資料,需要的朋友可以參考下2021-06-06
C++逆向分析移除鏈表元素實(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)前對象的克隆或者本身,return this返回當(dāng)前對象的地址,下面通過本文給大家介紹C/C++ 中return *this和return this的區(qū)別,感興趣的朋友一起看看吧2019-10-10
QT利用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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C++?分割字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09

