亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

c++讀寫文件流實例程序講解

2020-01-26 15:40:51
字體:
來源:轉載
供稿:網友

掌握文本文件讀寫的方法
了解二進制文件的讀寫方法

C++文件流:

復制代碼 代碼如下:

fstream  // 文件流
ifstream  // 輸入文件流
ofstream  // 輸出文件流

//創建一個文本文件并寫入信息
//同向屏幕上輸出信息一樣將信息輸出至文件
#include<iomanip.h>
#include<fstream.h>
void main()
{
  ofstream f1("d://me.txt");           //打開文件用于寫,若文件不存在就創建它
  if(!f1)return;                 //打開文件失敗則結束運行
  f1<<setw(20)<<"姓名:"<<"廉東方"<<endl;     //使用插入運算符寫文件內容
  f1<<setw(20)<<"家庭地址:"<<"河南鄭州"<<endl;
  f1.close();                   //關閉文件
}

運行后打開文件d:/me.txt,其內容如:姓名:廉東方家庭地址:河南鄭州

文件操作:
打開文件
文件名
注意路徑名中的斜杠要雙寫,如:"D://MyFiles//ReadMe.txt"
文件打開方式選項:
ios::in= 0x01, //供讀,文件不存在則創建(ifstream默認的打開方式)
ios::out  = 0x02, //供寫,文件不存在則創建,若文件已存在則清空原內容(ofstream默認的打開方式)
ios::ate  = 0x04, //文件打開時,指針在文件最后。可改變指針的位置,常和in、out聯合使用
ios::app  = 0x08, //供寫,文件不存在則創建,若文件已存在則在原文件內容后寫入新的內容,指針位置總在最后
ios::trunc = 0x10, //在讀寫前先將文件長度截斷為0(默認)
ios::nocreate = 0x20, //文件不存在時產生錯誤,常和in或app聯合使用
ios::noreplace = 0x40, //文件存在時產生錯誤,常和out聯合使用
ios::binary= 0x80  //二進制格式文件
文件保護方式選擇項:
filebuf::openprot; //默認的兼容共享方式
filebuf::sh_none;  //獨占,不共享
filebuf::sh_read;  //讀共享
filebuf::sh_write; //寫共享
打開文件的方法
調用構造函數時指定文件名和打開模式
ifstream f("d://12.txt",ios::nocreate); //默認以 ios::in 的方式打開文件,文件不存在時操作失敗
ofstream f("d://12.txt");  //默認以 ios::out的方式打開文件
fstream f("d://12.dat",ios::in|ios::out|ios::binary); //以讀寫方式打開二進制文件
使用Open成員函數
fstream f;
f.open("d://12.txt",ios::out); //利用同一對象對多個文件進行操作時要用到open函數
檢查是否成功打開
成功:
if(f){...} //對ifstream、ofstream對象可用,fstream對象不可用。
if(f.good()){...}
失?。?BR>if(!f){...} // !運算符已經重載
if(f.fail()){...}
讀寫操作
使用<<,>>運算符
只能進行文本文件的讀寫操作,用于二進制文件可能會產生錯誤。
使用函數成員 get、put、read、write等
經常和read配合使用的函數是gcount(),用來獲得實際讀取的字節數。
讀寫二進制文件注意事項
打開方式中必須指定ios::binary,否則讀寫會出錯
用read/write進行讀寫操作,而不能使用插入、提取運算符進行操作,否則會出錯。
使用eof()函數檢測文件是否讀結束,使用gcount()獲得實際讀取的字節數
關閉文件
使用成員函數close,如:
f.close(); 
利用析構函數
對象生命期結束時會檢查文件是否關閉,對沒有關閉的文件進行關閉操作。
隨機讀寫文件
通過移動文件讀寫指針,可在文件指定位置進行讀寫。
seekg(絕對位置);//絕對移動,//輸入流操作
seekg(相對位置,參照位置);  //相對操作
tellg();//返回當前指針位置
seekp(絕對位置);//絕對移動,//輸出流操作
seekp(相對位置,參照位置);  //相對操作 
tellp();//返回當前指針位置
參照位置:
ios::beg= 0 //相對于文件頭
ios::cur= 1 //相對于當前位置
ios::end= 2 //相對于文件尾
讀寫文本文件的示例
/為能夠正確讀出寫入文件的各數據,各數據間最好要有分隔

復制代碼 代碼如下:

#include<fstream.h>
void main()
{
fstream f("d://try.txt",ios::out);
f<<1234<<' '<<3.14<<'A'<<"How are you"; //寫入數據
f.close();
f.open("d://try.txt",ios::in);
int i;
double d;
char c;
char s[20];
f>>i>>d>>c; //讀取數據
f.getline(s,20);
cout<<i<<endl; //顯示各數據
cout<<d<<endl;
cout<<c<<endl;
cout<<s<<endl;
f.close();
}

運行結果:

1234
3.14
A
How are you
Press any key to continue

顯示文本文件的內容

使用get()一次讀一個字符--------------------------------方案一

復制代碼 代碼如下:

#include<fstream.h>
void main()
{
ifstream fin("d://簡介.txt",ios::nocreate);
if(!fin){
cout<<"File open error!/n";
return;
}
char c;
while((c=fin.get())!=EOF)cout<<c;  //注意結束條件的判斷
fin.close();
}

//使用get(char *,int n,char delim='/n')一次讀多個字符----方案二
//巧妙利用文本文件中不會有字符'/0'的特點進行讀取
#include<fstream.h>
void main()
{
ifstream fin("d://簡介.txt",ios::nocreate);
if(!fin){
cout<<"File open error!/n";
return;
}
char c[80];
while(fin.get(c,80,'/0')!=NULL)cout<<c; //注意結束條件的判斷
fin.close();
}
//使用read(char *,int n)讀文件---------------------------方案三
#include<fstream.h>
void main()
{
ifstream fin("d://簡介.txt",ios::nocreate);
if(!fin){
cout<<"File open error!/n";
return;
}
char c[80];
while(!fin.eof())  //判斷文件是否讀結束
{
fin.read(c,80);
cout.write(c,fin.gcount());
}
fin.close();
}

拷貝文件
二進制文件操作示例

復制代碼 代碼如下:

#include<fstream.h>
void main()
{
ifstream fin("C://1.exe",ios::nocreate|ios::binary);
if(!fin){
cout<<"File open error!/n";
return;
}
ofstream fout("C://2.exe",ios::binary);
char c[1024];
while(!fin.eof())
{
fin.read(c,1024);
fout.write(c,fin.gcount());
}
fin.close();
fout.close();
cout<<"Copy over!/n";
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
3344国产精品免费看| 久久视频国产精品免费视频在线| 久久午夜a级毛片| 成人亚洲综合色就1024| 欧美性xxxxxxx| 欧美日韩国产成人在线观看| 精品偷拍一区二区三区在线看| 992tv在线成人免费观看| 国产美女直播视频一区| 91精品国产777在线观看| 国产精品九九久久久久久久| 日韩av一区二区在线| 欧美亚洲视频一区二区| 国产丝袜精品视频| 久久夜色精品国产| 亚洲精品720p| 日日噜噜噜夜夜爽亚洲精品| 久久精品国产亚洲精品| 久久艹在线视频| 久久久国产精品一区| 国产精品香蕉在线观看| 日韩欧美a级成人黄色| 在线播放亚洲激情| 成人av.网址在线网站| 亚洲乱亚洲乱妇无码| 97在线看福利| 97视频网站入口| 亚洲精品成人久久久| 日韩中文字幕在线观看| 91嫩草在线视频| 激情懂色av一区av二区av| 色婷婷av一区二区三区久久| 国产自产女人91一区在线观看| 久久成人精品一区二区三区| 亚洲高清福利视频| 亚洲va电影大全| 国外成人在线视频| 欧美亚洲另类制服自拍| 日韩黄色高清视频| 国产精品青草久久久久福利99| 亚洲美女视频网站| 欧美成aaa人片在线观看蜜臀| 日韩暖暖在线视频| 欧美大尺度在线观看| 91免费在线视频网站| 精品美女永久免费视频| 亚洲精品美女久久久久| 国产精自产拍久久久久久| 亚洲午夜av电影| 亚洲色图35p| 国产精品久久久久久久久久小说| 亚洲成人av在线| 亚洲欧美国产精品| 国产亚洲视频在线观看| 91福利视频在线观看| 欧美成人精品h版在线观看| 午夜伦理精品一区| 国产一区二区在线免费视频| 欧美高跟鞋交xxxxxhd| 亚洲欧美激情四射在线日| 国产男女猛烈无遮挡91| 亚洲男人的天堂网站| 热门国产精品亚洲第一区在线| 最近的2019中文字幕免费一页| 国产精品免费看久久久香蕉| 精品国产一区二区三区久久狼5月| 久久夜色撩人精品| 亚洲精品福利在线| 97久久精品在线| 日韩第一页在线| 欧美大尺度在线观看| 久久亚洲精品国产亚洲老地址| 亚洲女同性videos| 亚洲性生活视频| 亚洲色无码播放| 亚洲国产欧美日韩精品| 国产一区二区三区视频免费| 91精品国产综合久久久久久久久| 91地址最新发布| 97精品国产91久久久久久| 日韩成人激情在线| 国产小视频国产精品| 91av网站在线播放| 日本电影亚洲天堂| 欧美整片在线观看| 俺去啦;欧美日韩| 亚洲国产成人精品久久| 日韩精品视频在线观看网址| 97国产精品免费视频| 亚洲小视频在线| 日韩av在线一区二区| 亚洲娇小xxxx欧美娇小| 日韩av电影手机在线观看| 亚洲电影在线看| 欧美一区二区三区……| 午夜精品久久久久久久男人的天堂| 青青草原一区二区| 国产欧美日韩中文字幕| 精品久久久久久国产91| 久久精品青青大伊人av| 日韩在线欧美在线| 国产精品免费久久久久影院| 中文字幕综合在线| 欧美成人激情视频| 久久成人国产精品| 精品av在线播放| 久久久久久噜噜噜久久久精品| 久久亚洲国产精品成人av秋霞| 久久精品国产96久久久香蕉| 精品视频—区二区三区免费| 亚洲精品在线观看www| 日韩精品亚洲视频| 久久夜色精品国产欧美乱| 欧美精品做受xxx性少妇| 亚洲精品视频在线播放| 亚洲精品aⅴ中文字幕乱码| 97精品在线视频| 国产成人精品久久| 日产精品久久久一区二区福利| 久久亚洲电影天堂| 欧美国产日韩在线| 精品久久久久久久久国产字幕| 国产美女精品免费电影| 色妞欧美日韩在线| 欧美激情网站在线观看| 国产精品视频公开费视频| 亚洲免费视频一区二区| 78m国产成人精品视频| 中文在线资源观看视频网站免费不卡| 久久久久久久久91| 国产综合福利在线| 国内精品视频一区| 久久综合免费视频影院| 精品香蕉在线观看视频一| 精品视频在线播放色网色视频| 色多多国产成人永久免费网站| 欧美多人乱p欧美4p久久| 欧美人在线观看| 欧美精品久久久久久久免费观看| 91最新国产视频| 欧美黄网免费在线观看| 日本高清视频一区| 欧美成人黄色小视频| 国产成人自拍视频在线观看| 国产精品视频999| 国产精品久久久久久亚洲调教| 亚洲精品视频网上网址在线观看| 欧美中文字幕在线观看| 欧美日韩中文在线| 欧美性猛交xxxx乱大交极品| 国产综合在线观看视频| 麻豆国产精品va在线观看不卡| 97超碰国产精品女人人人爽| 欧美性猛交xxxx久久久| 久久久久久国产免费| 精品一区二区三区三区| 51ⅴ精品国产91久久久久久| 国产欧美精品va在线观看| 久久久久中文字幕2018| 国产精品自拍偷拍| 国内精品国产三级国产在线专| 欧美猛少妇色xxxxx| 久久国产加勒比精品无码| 欧美激情极品视频|