2013-02-14 17 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(); 

Ten program drukuje całą linię w pliku, ale chcę wydrukować tylko pierwszą linię.Jak mogę odczytać pierwszą linię z pliku?

+5

prostu pozbyć pętli while i 'while (infile.eof!()) 'i tak nie jest poprawne – billz

+1

Dlaczego miałbyś oczekiwać, że pętla przejdzie tylko raz (chyba że warunek zostanie ustawiony w ten sposób)? – chris

Odpowiedz

10

while (!infile.eof()) nie działa zgodnie z oczekiwaniami, eof zobaczyć jeden przydatny link

Minor poprawki do kodu, powinno działać:

ifstream infile("test.txt"); 

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

    infile.close(); 
+0

działa dobrze.thx – user2036891

0

Można spróbować to:

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(); 

ten powinien wydrukować wszystkie linie w pliku, wiersz po wierszu.

Powiązane problemy