gpt4 book ai didi

c++ - 用 C++ 读取文本文件最优雅的方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:22:55 28 4
gpt4 key购买 nike

我想用 c++ 将文本文件的全部内容读入 std::string 对象。

使用 Python,我可以编写:

text = open("text.txt", "rt").read()

它非常简单优雅。我讨厌丑陋的东西,所以我想知道 - 用 C++ 读取文本文件的最优雅的方法是什么?谢谢。

最佳答案

有很多方法,你选择最适合你的。

读入 char*:

ifstream file ("file.txt", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
file.seekg(0, ios::end);
size = file.tellg();
char *contents = new char [size];
file.seekg (0, ios::beg);
file.read (contents, size);
file.close();
//... do something with it
delete [] contents;
}

进入 std::string:

std::ifstream in("file.txt");
std::string contents((std::istreambuf_iterator<char>(in)),
std::istreambuf_iterator<char>());

转入 vector :

std::ifstream in("file.txt");
std::vector<char> contents((std::istreambuf_iterator<char>(in)),
std::istreambuf_iterator<char>());

转化成字符串,使用stringstream:

std::ifstream in("file.txt");
std::stringstream buffer;
buffer << in.rdbuf();
std::string contents(buffer.str());

file.txt 只是一个示例,二进制文件也可以正常工作,只需确保在 ifstream 构造函数中使用 ios::binary。

关于c++ - 用 C++ 读取文本文件最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/195323/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com