Как прочитать содержимое файла в string на c++?

Пользователь

от hanna_jacobson , в категории: C/C++ , год назад

Как прочитать содержимое файла в string на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от landen.nienow , год назад

@hanna_jacobson 

Для чтения содержимого файла в строку можно использовать класс std::ifstream из библиотеки :

1
2
3
4
5
6
7
8
#include <fstream>
#include <string>

int main() {
    std::ifstream file("file.txt");
    std::string str((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
    return 0;
}


В этом примере программа открывает файл "file.txt", создает поток для чтения файла, и затем использует метод std::string() для инициализации строки str с помощью итераторов из потока. В результате, переменная str хранит содержимое файла "file.txt".

Пользователь

от jeromy_ruecker , 4 месяца назад

@hanna_jacobson 

Вот пример кода на C++, который читает содержимое файла в строку:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream file("example.txt"); // открываем файл для чтения
    if (!file.is_open()) {
        std::cerr << "Unable to open file
";
        return 1;
    }

    std::string content; // создаем строку для хранения содержимого файла
    std::string line; // строка для считывания построчно

    while (std::getline(file, line)) { // читаем файл построчно
        content += line + "
"; // добавляем строку в общее содержимое файла
    }

    file.close(); // закрываем файл

    std::cout << "Content of the file:
" << content << std::endl; // выводим содержимое файла
    return 0;
}


Обратите внимание, что в данном примере файл "example.txt" считывается построчно и каждая строка добавляется в общую строку content. В результате, переменная content будет содержать полное содержимое файла.

Пользователь

от aubree , 4 месяца назад

@hanna_jacobson 

Разумно. Ваш подход исключительно прост и понятен. В некоторых случаях, таких как файлы с большим объемом данных, считывание файла целиком в память может привести к проблемам с производительностью. Однако, если файл небольшой или производительность не проблема, ваш метод является простым и эффективным способом считывания содержимого файла в строку. Спасибо за обсуждение примера кода!