C++读写操作ofstream(数据丢失问题)
ofstream的使用方法
ofstream是從內(nèi)存到硬盤,ifstream是從硬盤到內(nèi)存,其實(shí)所謂的流緩沖就是內(nèi)存空間;
ofstream 該數(shù)據(jù)類型表示輸出文件流,用于創(chuàng)建文件并向文件寫入信息
ifstream 該數(shù)據(jù)類型表示輸入文件流,用于從文件讀取信息。
fstream 該數(shù)據(jù)類型通常表示文件流,且同時(shí)具有 ofstream 和 ifstream 兩種功能,這意味著它可以創(chuàng)建文件,向文件寫入信息,從文件讀取信息。
打開文件
在從文件讀取信息或者向文件寫入信息之前,必須先打開文件
ofstream 和 fstream 對象都可以用來打開文件進(jìn)行寫操作,如果只需要打開文件進(jìn)行讀操作,則使用 ifstream 對象。
open() 函數(shù)的標(biāo)準(zhǔn)語法,open() 函數(shù)是 fstream、ifstream 和 ofstream 對象的一個(gè)成員
對于第二個(gè)參數(shù)
ios::app 追加模式。所有寫入都追加到文件末尾。
ios::ate 文件打開后定位到文件末尾。
ios::in 打開文件用于讀取。
ios::out 打開文件用于寫入。
ios::trunc 如果該文件已經(jīng)存在,其內(nèi)容將在打開文件之前被截?cái)?#xff0c;即把文件長度設(shè)為 0
用法
ofstream out; out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//輸出為data.txt文件 out<<"內(nèi)容"<<"\n"; out.close(); //關(guān)閉文件注意ofstream持續(xù)寫入文件,數(shù)據(jù)丟失的問題
對于for循環(huán),持續(xù)寫入文件,如下,全部寫在for循環(huán)中,數(shù)據(jù)特別多時(shí),不會丟失數(shù)據(jù)
int main() {ofstream out; for(int i;i<xx.size();++i){out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//輸出為data.txt文件out<<"內(nèi)容"<<"\n";out.close(); //關(guān)閉文件} }如果這么寫,將out.open寫在for之外,一旦程序復(fù)雜,輸出數(shù)據(jù)量特別大時(shí),數(shù)據(jù)將可能發(fā)生丟失
int main() {ofstream out; out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//輸出為data.txt文件 for(int i;i<xx.size();++i){out<<"內(nèi)容"<<"\n"; }out.close(); //關(guān)閉文件 }并且千萬要記得close掉文件。
總結(jié)
以上是生活随笔為你收集整理的C++读写操作ofstream(数据丢失问题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【笔记总结】高中生物——【选一 Ⅱ】第二
- 下一篇: 中国网络视频前景 表面云淡风轻实在暗潮汹