В C++ есть несколько способов читать содержимое текстового файла построчно. Рассмотрим некоторые из них.
Способ 1: использование потокового ввода/вывода
#include <iostream> #include <fstream> #include <string> int main() { std::ifstream file("myfile.txt"); if (file.is_open()) { std::string line; while (std::getline(file, line)) { std::cout << line << std::endl; } file.close(); } else { std::cerr << "Unable to open file" << std::endl; } return 0; }
В этом примере мы используем класс ifstream
из библиотеки <fstream>
, чтобы открыть файл с именем "myfile.txt". Затем мы проверяем, удалось ли открыть файл. Если файл открылся успешно, мы создаем переменную line
типа std::string
и, используя функцию std::getline()
, читаем строки из файла по одной и выводим их на экран с помощью std::cout
. Затем мы закрываем файл, вызывая метод close()
.
Способ 2: использование итераторов
#include <iostream> #include <fstream> #include <iterator> int main() { std::ifstream file("myfile.txt"); if (file.is_open()) { std::istream_iterator<std::string> iit(file), eof; std::copy(iit, eof, std::ostream_iterator<std::string>(std::cout, "n")); file.close(); } else { std::cerr << "Unable to open file" << std::endl; } return 0; }
В этом примере мы используем std::istream_iterator
, чтобы итерировать по файлу в потоковом режиме. Мы создаем итератор iit
, который указывает на начало файла, и итератор eof
, который указывает на конец файла. Затем мы используем функцию std::copy()
, чтобы копировать строки из итератора iit
в std::cout
с помощью std::ostream_iterator
. Разделителем строк является символ новой строки "n".
Оба этих способа позволяют читать содержимое файла построчно. Если вы не получаете желаемого результата, проверьте, что файл "myfile.txt" находится в том же каталоге, что и исполняемый файл программы, или укажите полный путь до файла при открытии. Также убедитесь, что файл имеет правильный формат и что у вас есть права на чтение файла.