Есть ли в стандартной библиотеке c++ возможности прочитать файл целиком в std::string или std::vector?

Есть ли в стандартной библиотеке c++ возможности прочитать файл целиком в std::string или std::vector, не прибегая при этом к построчному или посимвольному чтению файла в цикле?


Ответы (1 шт):

Автор решения: Глеб Труфанов

Можно так:

#include <iostream>
#include <fstream>
    
using namespace std;
    
int main() {
    ifstream buffer("test.txt");
    string str((istreambuf_iterator<char>(buffer)), istreambuf_iterator<char>());
    cout << str << endl;
    return 0;
}

А можно так:

#include <iostream>
#include <fstream>
#include <sstream>

using namespace std;

int main() {
    ifstream buffer("test.txt");
    stringstream str;
    str << buffer.rdbuf();
    string fileInfo(str.str());
    cout << fileInfo << endl;
    return 0;
}

Есть ещё способы, но эти достаточно простые и удобные

→ Ссылка