C++でテキストファイル全体を文字列に読み込む方法

C++では、std::ifstreamを用いてテキストファイル全体を読み取ってstd::stringに取り込むことができます。以下はテキストファイル全体を読み込んでstd::stringに取り込むためのコード例です。

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

std::string readFileToString(const std::string& filename) {
    std::ifstream file(filename);
    if (!file.is_open()) {
        std::cerr << "Failed to open file: " << filename << std::endl;
        return "";
    }
    
    std::string content((std::istreambuf_iterator<char>(file)),
                        std::istreambuf_iterator<char>());
    
    file.close();
    return content;
}

int main() {
    std::string filename = "example.txt";
    std::string content = readFileToString(filename);
    std::cout << "File content:\n" << content << std::endl;
    
    return 0;
}

readFileToStringメソッドは引数としてファイル名を受け取り、そのファイルの内容を返します。メソッドはファイルをオープンしようとします。失敗した場合はエラーメッセージを出力して空文字列を返します。次にstd::istreambuf_iteratorを使ってファイルストリームからstd::stringオブジェクトを構築し、ファイルの内容全体を読み取ります。最後にファイルをクローズし、読み取ったファイル内容を返します。

メイン関数では、サンプルコードは、readFileToString関数を使ってexample.txtファイルの内容を読み取り、その内容をコンソールに出力しています。

bannerAds