第16周閱讀程式-檔案操作
阿新 • • 發佈:2019-01-27
/*煙臺大學計算機學院 02.03.*檔名稱:xiangmu1.cpp 03.04.*作 者:李亞輝 04.05.*完成日期:2016年6月24日 05.06.*版 本 號:vc++6.0 06.07.* 07.08.*問題描述:。 08.09.*輸入描述: 09. *問題輸出: 10.10.*/ #include <iostream> #include <fstream>//關於檔案操作的標頭檔案 using namespace std; int main() { fstream outfile,infile; outfile.open("data.dat",ios::out); outfile<<"1111111111"<<endl;//向檔案裡面輸出下面的操作 outfile<<"aaaaaaaaaa"<<endl; outfile<<"AAAAAAAAAA"<<endl; outfile<<"**********"<<endl; outfile.close();//關閉輸出的檔案 infile.open("data.dat",ios::in);//從檔案讀入資料 char line[80];//定義一個字串的陣列 int i=0; while(!infile.eof())//用於判斷是否到達檔案尾部,避免檔案的讀取錯誤 { i++; infile.getline(line,sizeof(line));//得到變數的儲存空間 cout<<i<<": "<<line<<endl; } infile.close();//關閉讀入資料的檔案 return 0; } /*學習心得:遇見問題,關鍵時刻還是要看百度,儘管有時看不太懂,但還是很有用的,百度裡說在控制檯輸出,每次都會多輸出一次,百度說EOF的檢驗流中保留的不是終止符,上面的while 當執行到終止符時,while(!infile.eof())中的infile流中保留的還是上一次的資訊,將終結符讀入line, 讀入不成功。因此line中儲存的還是上一次的資訊,接著再次輸出,之後才跳出迴圈。
<img src="https://img-blog.csdn.net/20160624173332476?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />