2015-05-06 2 views
-5

Я читаю отдельные строки из текстового файла и пытаюсь распечатать их на отдельных строках в командной строке, но текст просто быстро мигает и исчезает.C++ Печать текста в цикле for

Я настроен на количество строк в readable.txt

cout << "These are the names of your accounts: " << endl; 
for (int b = 1; b <= i; b++) 
{ 
    fstream file("readable.txt"); 

    GotoLine(file, b); 

    string line; 
    file >> line; 

    cout << line << endl; 
} 
cin.ignore();      
break; 

Любая помощь будет высоко оценен.

ответ

0

ошибка: Открытие fstream внутри цикла? то есть самоубийство, ваш fstream всегда одинаковый, почему вы открываете его для каждой итерации?

текст, вероятно, исчезнет, ​​потому что ваша программа достигает конца и авто выходов вы должны сделать его ждать до перерыва или до достижения конца

0

Вам не нужно заново файл каждый раз и вызывать GotoLine(file, b); вы можете откройте его за пределами цикла for и прочитайте строки через std::getline(file, line).

Если вы хотите посмотреть выход, вставьте system("pause") сразу после цикла for. Если вы хотите, чтобы приостановить ввод после каждой строки, вставьте getchar() в конце для цикла (внутри него)

0

Распад нонсенс (если фрагмент не в петле или коммутаторе. Моей догадка для исчезающего текст является вмешательством в IDE. Попробуйте в терминале/консоли. И, как и в других ответах, файл открыт должен быть вне цикла.

#include <iostream> 
#include <fstream> 

using namespace std; 

void GotoLine(fstream &f, int b) 
{ 
    char buf [999]; 
    while (b > 0) { f.getline (buf, 1000); b--; } 
} 

int main() 
{ 
    int i = 5; 
    cout << "These are the names of your accounts: " << endl; 
    for (int b = 1; b <= i; b++) 
    { 
     fstream fl("readable.txt"); 
     GotoLine(fl, b); 

     string line; 
     fl >> line; 

     cout << line << endl; 
    } 
} 
0

во-первых, избегать открытия файла внутри для цикла. Вы Код:

std::ifstream file("readable.txt"); 
file.open("readable.txt"); 

if(file.fail()) 
{ 
    std::cout << "File cannot be opened" << std::endl; 
    return EXIT_FAILURE; 
} 

std::string line; 

while std::getline(file, line) // This line allows to read a data line by line 
{ 
    std::cout << line << std::endl; 
} 

file.close(); 

system("PAUSE"); // This line allows the console to wait 
return EXIT_SUCCESS; 
Смежные вопросы