テキストファイルからstd::stringを得るコードです。
ファイルサイズ分のメモリを一度に確保するので大きなサイズのファイルの読み込みには向きません。
#include <iostream>
#include <fstream>
#include <vector>
std::string getStringFromFile(const std::string& filePath) {
std::ifstream ifs(filePath, std::ios::binary);
// ファイルサイズを得る
ifs.seekg(0, std::ios::end);
size_t sz = ifs.tellg();
ifs.seekg(0, std::ios::beg);
//ファイルサイズ分ファイルから読み込む
std::vector<char> buf(sz);
ifs.read(buf.data(), sz);
//読み込んだcharデータからstringを作成
return std::string(buf.data(), sz);
}
int main() {
std::string str = getStringFromFile("/var/tmp/note.txt");
std::cout << str << std::endl;
}
出力結果
$ echo "こんにちは、世界!" >> /var/tmp/note.txt $ ./GetStrigFromFile こんにちは、世界!