Ребята из libstdc ++ хорошо обсуждают, как это сделать с rdbuf
.
.
Важная часть:
std::ifstream in("filename.txt");
std::ofstream out("filename2.txt");
out << in.rdbuf();
Я знаю, вы спрашивали о том, как поместить содержимое в string
. Вы можете сделать это, сделав out
a std::stringstream
. Или вы можете просто добавить его к std::string
с шагом std::getline
:
std::string outputstring;
std::string buffer;
std::ifstream input("filename.txt");
while (std::getline(input, buffer))
outputstring += (buffer + '\n');