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ファイルの内容を読み取り、その内容をコンソールに出力しています。