在c ++中将文本文件读入std :: string的单行程序?

qui*_*uss 0 c++ string file-io lines-of-code ifstream

是否有单行将一个(不是很大的)文本文件的内容读入字符串?

我找到的最短的:

#include <string>
#include <fstream>
#include <streambuf>

std::ifstream t("file.txt");
std::string str((std::istreambuf_iterator<char>(t)),
                 std::istreambuf_iterator<char>());
Run Code Online (Sandbox Code Playgroud)

(对于大文件,请注意它是非常低效的解决方案,因为它必须在从流中读取的每个新字符之后重新分配缓冲区.)

credit:@Tyler McHenry将整个ASCII文件读入C++ std :: string

Ste*_*sop 7

您可以在一个声明中执行此操作:

std::string str(std::istreambuf_iterator<char>(std::ifstream("file.txt").rdbuf()), std::istreambuf_iterator<char>());
Run Code Online (Sandbox Code Playgroud)

这是一个单行代码取决于你的显示器有多大......