2013-05-28 83 views
2

我設法寫入文本文件,但我的讀取文件出了問題。這裏是我的代碼:在C++中讀寫文件

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string line, s; 
    ofstream out_file; 
    out_file.open("hello.txt"); 
    for(int count = 0; count< 5; count++) 
    { 
     out_file << "Hello, World" << endl; 
    } 
    out_file.close(); 

    ifstream in_file; 
    in_file.open("hello.txt"); 
    if (in_file.fail()) 
    { 
     cout << "File opening error. " << endl; 
    } 
    else 
    { 
     while(getline(in_file,line)) 
     { 
      in_file >> s; 
      cout << s << endl; 
     } 
    } 
    in_file.close(); 

    system("Pause"); 
    return 0; 
} 

我設法寫了5次「Hello,World」到文本文件中。但是,程序運行時,僅打印出「Hello」4次,第5行打印「World」。從我的代碼中,不是應該打印出「Hello,World」5次嗎?有人可以指出錯誤在哪裏嗎?

+0

'in_file中>> S;'在空間停止。 –

+0

那我該如何解決?如果我把getline(in_file,s)放在 –

+0

'in_file >> s;'應該是'line >> s;'但是會給你一個不同的錯誤。 –

回答

3
while(getline(in_file,line)) 
{ 
    in_file >> s; 
    cout << s << endl; 
} 

應該是:

while(getline(in_file,line)) 
{ 
    cout <<line<< endl; 
} 

既然你從文件中讀取到line,不s。所以你應該打印line內的內容。

+0

噢好吧。現在已經修復了。非常感謝 –

+0

@Carol歡迎您。 – taocp

3

您讀取文件做函數getline和使用操作>>

你應該嘗試

while(getline(in_file,line)) 
{ 
    cout << line << endl; 
}