C++ перенаправление текстового файла getline бесконечный цикл

Так что у меня возникла проблема, когда я читаю в текстовом файле с использованием cin. Вот основная идея моего кода:

while(getline(cin,line) {
cout << line << endl;
}
//Do some task
return 0;

Проблема, с которой я сталкиваюсь, заключается в том, что цикл не завершится, и //Do do задача никогда не запустится Единственное решение, которое я нашел, - это посмотреть непосредственно на текстовый файл, посмотреть, сколько там строк текста, и жестко написать условный код, чтобы вырваться из него. Допустим, у меня есть текстовый файл с 5 строками и переменной int. Тогда я бы сделал что-то вроде этого:

  while(getline(cin,line) {
cout << line << endl;
if(row == 5) {
break;
}
//Do some task
return 0;

Я попробовал поискать в Google, но я не могу найти ответ нигде. Есть идеи? А также только библиотеки, которые мне разрешено использовать - это iostream.

3 ответа

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

int main()
{
    std::string line;
    std::fstream fin;
    fin.open("test.txt");
    while (getline (fin, line))
        std::cout << line << std::endl;
    fin.close();

    //Do smth here

    return 0;
}

Вы можете использовать rdbuf для перенаправления вывода cin. Следующая ссылка поможет вам. http://www.cplusplus.com/reference/ios/ios/rdbuf/

Следующий блок кода должен решить вашу проблему: Кредит переходит к автору: kevinchkin http://www.cplusplus.com/forum/beginner/8388/

#include<iostream>
#include<fstream>

using namespace std;

int main() {

 ifstream myReadFile;
 myReadFile.open("text.txt");
 char output[100];
 if (myReadFile.is_open()) {
 while (!myReadFile.eof()) {


    myReadFile >> output;
    cout<<output;


   }
}
myReadFile.close();
return 0;
}

Это базовый шаблон для чтения из файла.txt. Я также не могу придумать причину, по которой вы не сможете использовать больше, чем просто iostream. Они делают другие библиотеки, потому что iostream не лучший способ сделать это. Большинству (если не всем) учителям / профессорам, которые у меня были, нравится, когда ученики выходят за рамки того, что изучает класс, и пытаются учиться больше. Если вам нужна дополнительная помощь, взгляните на: http://www.cplusplus.com/doc/tutorial/files/

Другие вопросы по тегам