Чтение из файла, только чтение текста, пока он не попадет в пустое пространство - PullRequest
0 голосов
/ 15 октября 2011

Мне удалось успешно прочитать текст в файле, но он читает только до тех пор, пока не достигнет пустого места, например, текст: «Привет, это тест», cout как: «Привет».

Удаление "," не имеет значения.

Я думаю, мне нужно добавить что-то похожее на "inFil.ignore(1000,'\n');" в следующий бит кода:

inFil>>text;
inFil.ignore(1000,'\n');
cout<<"The file cointains the following: "<<text<<endl;

Я бы предпочел не переходить на getline(inFil, variabel);, потому что это заставило бы меня повторить программу, которая по существу работает.

Спасибо за любую помощь, кажется, что это очень маленькая и легко решаемая проблема, но я не могу найти решение.

Ответы [ 2 ]

4 голосов
/ 15 октября 2011
std::ifstream file("file.txt");
if(!file) throw std::exception("Could not open file.txt for reading!");
std::string line;
//read until the first \n is found, essentially reading line by line unti file ends
while(std::getline(file, line))
{
  //do something line by line
  std::cout << "Line : " << line << "\n";
}

Это поможет вам прочитать файл. Я не знаю, чего вы пытаетесь достичь, поскольку ваш код не завершен, но приведенный выше код обычно используется для чтения файлов в c ++.

2 голосов
/ 15 октября 2011

Вы использовали форматированное извлечение для извлечения одной строки, один раз: это означает одно слово.

Если вы хотите строку, содержащую все содержимое файла:

std::fstream fs("/path/to/file");
std::string all_of_the_file(
   (std::istreambuf_iterator<char>(filestream)),
   std::istreambuf_iterator<char>()
);
...