gpt4 book ai didi

c++ - 从文件读取到 char 数组的首选方法是什么?

转载 作者:行者123 更新时间:2023-11-30 01:53:18 25 4
gpt4 key购买 nike

对基本问题表示歉意;我对 C++ 比较陌生。

我环顾四周,看到了许多关于如何从文件读取到字符数组的不同建议。例如,this one创建一个大小为 10000 的字符数组,但这是次优的(要么浪费空间,要么空间不足)。

从文件读取字符串或类似字符串的序列的最简单、最常用方法是什么?这是一个很常见的操作;必须有一个标准的方法来做到这一点。没有单行吗?

最佳答案

我通常会使用它(比如当我们循环读取数千个文件时!):

std::ifstream file("data.txt"); 
std::string data {std::istreambuf_iterator<char>{file},
std::istreambuf_iterator<char>{} };

无需使用 std::copy(与其他答案一样;现已删除!)。

如果你想要 vector ,那么用这个代替:

std::vector<char> data {std::istreambuf_iterator<char>{file}, 
std::istreambuf_iterator<char>{} };

但是,如果您想填充现有的 std::vector(或 std::string),则使用 insert 方法(两种类型都有相同签名的 insert 方法!):

data.insert(data.end(),                           //insert at end
std::istreambuf_iterator<char>{file}, //source begin
std::istreambuf_iterator<char>{} ); //source end

希望对您有所帮助。

关于c++ - 从文件读取到 char 数组的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260097/

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