2013-02-14 13 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

Почему вы ожидаете, что цикл будет проходить только один раз (если условие не настроено таким образом)? – chris

ответ

10

while (!infile.eof()) не работает, как вы ожидали, 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(); 

Это должно напечатать все строки в файле, строка за строкой.

Смежные вопросы