从文件读取到char数组的首选方式是什么
What is the preferred way to read from a file into a char array?
为基本问题道歉;我对C++还比较陌生。
我环顾四周,看到了许多关于如何从文件读取到char数组的不同建议。例如,这个创建了一个大小为10000的char数组,但这是次优的(要么浪费了空间,要么没有足够的空间)。
从文件读取字符串或类似字符串的序列的最简单、最常用的方法是什么?这是一种常见的操作;必须有一个标准的方法来做这件事。没有一条班轮吗?
我通常会使用它(比如当我们而不是在循环中读取数千个文件时!):
std::ifstream file("data.txt");
std::string data {std::istreambuf_iterator<char>{file},
std::istreambuf_iterator<char>{} };
无需使用std::copy
(与其他答案一样,现已删除!)。
如果你想要矢量,那么就用这个来代替:
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
希望能有所帮助。
相关文章:
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 在reactor中存储eventHandlers的最佳方式是什么
- 引用 std::any 或 not_yet_in_std::whatever 的惯用方式是什么?
- 在C++中,建议通过数组循环的方式是什么?
- DLL共享数据的推荐方式是什么
- 等待线程的最佳方式是什么
- 将uint8_t*buffer和size_tbufferlen从C++传递到C中的API函数的最佳方式是什么
- 只显示片段着色器的最佳方式是什么
- 复制文件的最佳方式是什么,以便我可以在复制过程中轻松取消复制?
- 在 c++ 中打印到控制台的最佳方式是什么?
- 在Qt Creator中应用代码更改的快捷方式是什么?
- 在C 中超负荷构造函数的合适方式是什么
- 执行随机开关函数的QT方式是什么连续两次使用相同情况的方法
- 在某些代码中覆盖方法的方式是什么?
- 为单个函数同时声明多个变量的最佳方式是什么
- Qt中数据类(模型)和视图/控制器类之间的数据通信的正确方式是什么
- 在c++中存储一个对象或不存储对象的首选方式是什么
- 在C 项目中包含库的不同方式是什么?
- 解释"Bit String"的最佳方式是什么
- 计算差异数据并通过网络发送的最佳方式是什么