1. 程式人生 > >第16周閱讀程式-檔案操作

第16周閱讀程式-檔案操作

/*煙臺大學計算機學院        
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="" />