2013-02-14 38 views
6
ifstream infile; 

string read_file_name("test.txt"); 

infile.open(read_file_name); 

string sLine; 

    while (!infile.eof()) 
    { 
     getline(infile, sLine);   
     cout << sLine.data() << endl; 
    } 

    infile.close(); 

このプログラムはファイル内のすべての行を印刷しますが、最初の行のみを印刷します。ファイルから最初の行を読み込むにはどうすればよいですか?

+5

はちょうどwhileループと 'しばらく(infile.eofを取り除きます()) 'が正しくありません。 – billz

+1

なぜループが1回しか通過しないと思いますか? – chris

答えて

10

while (!infile.eof())は、あなたが期待通り​​があなたのコードに有用な一のlink

マイナー修正を参照して、動作するはずです、動作しません:!

ifstream infile("test.txt"); 

    if (infile.good()) 
    { 
    string sLine; 
    getline(infile, sLine); 
    cout << sLine << endl; 
    } 

    infile.close(); 
+0

作品fine.thnx – user2036891

0

あなたはこれを試すことができます。

ifstream infile; 

string read_file_name("test.txt"); 

infile.open(read_file_name); 

string sLine; 

while (!infile.eof()) 
{ 
    infile >> sLine; 
    cout << sLine.data() << endl; 

} 

infile.close(); 

これはラインで、ファイル内の行をすべての行を印刷する必要があります。

関連する問題