C++實現(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()); //若失敗,則輸出錯誤消息,并終止程序運行
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()); //若失敗,則輸出錯誤消息,并終止程序運行
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()); //若失敗,則輸出錯誤消息,并終止程序運行
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()); //若失敗,則輸出錯誤消息,并終止程序運行
ofs<<c; //寫入一個字符
ofs.close();
}
2.3偏移指定字節(jié)寫入
void writeToTxtOffset(string file, int offset, string content)
{
ofstream ofs(file, ios::out | ios::in); //以不清空方式打開文件,不存在則創(chuàng)建。注意:不要使用ios::app模式打開,因為一定寫在后面,seekp也無效
assert(ofs.is_open()); //若失敗,則輸出錯誤消息,并終止程序運行
ofs.seekp(offset, ios::beg); //從流開始位置偏移
ofs << content; //寫入內(nèi)容
ofs.close();
}
3.驗證
#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++實現(xiàn)讀寫文件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++實現(xiàn)讀寫文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何將C語言代碼轉(zhuǎn)換為應(yīng)用程序(也就是編譯)
有時候我們將讓我們的c語言代碼保存為一個exe方便,方便使用,實際就是我們俗說的編譯2013-07-07
Qt?10進(jìn)制和16進(jìn)制轉(zhuǎn)換的使用示例
在編程過程中,處理16進(jìn)制字符串與10進(jìn)制數(shù)字之間的轉(zhuǎn)換是很常見的需求,本文主要介紹了Qt?10進(jìn)制和16進(jìn)制轉(zhuǎn)換的使用示例,具有一定的參考價值,感興趣的可以了解一下2023-09-09
C語言示例講解動態(tài)/文件/靜態(tài)功能版本的通訊錄實現(xiàn)
通訊錄是一個可以記錄親人、好友信息的工具,這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)通訊錄管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07
C++ OpenCV實戰(zhàn)之網(wǎng)孔檢測的實現(xiàn)
這篇文章主要介紹了如何利用C++和OpenCV實現(xiàn)網(wǎng)孔檢測,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)OpenCV有一定幫助,感興趣的小伙伴可以了解一下2022-05-05
C語言計算連續(xù)無序數(shù)組中缺省數(shù)字方法詳解
這篇文章主要介紹了C語言計算連續(xù)無序數(shù)組中缺省數(shù)字方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-02-02
C語言數(shù)據(jù)結(jié)構(gòu)之棧和隊列的實現(xiàn)及應(yīng)用
棧和隊列是一種數(shù)據(jù)結(jié)構(gòu),只規(guī)定了性質(zhì),并沒有規(guī)定實現(xiàn)方式。本文將以順序結(jié)構(gòu)實現(xiàn)棧,鏈表方式實現(xiàn)隊列,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-08-08

