将C 数组写成文件,避免创建std :: String
Write C++ array to file, avoiding creating a std::string
我有一个表示ASCII数据的结构:
struct LineData
{
char _asciiData[256];
uint8_t _asciiDataLength;
}
使用:
创建std::string s = "some data here";
memcpy(obj._asciiData, s.length());
obj._asciiDataLength = s.length();
如何以最低的延迟写入char阵列以将其归档为ASCII?我想避免创建临时std::string
的中介阶段。
我尝试了:
file.write((char *)obj._asciiData, sizeof(obj._asciiDataLength));
file << std::endl;
但是我的文件只包含每行0'。
那是因为 sizeof(obj._asciiDataLength)
可能是系统上的 1
,因此只写了一个字符。您需要实际的长度,而不是uint8_t
的大小:
file.write(obj._asciiData, obj._asciiDataLength);
相关文章:
- 使用std::multimap迭代器创建std::list
- ";结果类型必须是可从输入范围的值类型""构造的;创建std::vector时
- C++如何创建 std::map
- 在共享缓冲区内存中创建 ::std::string 对象
- 创建 std::string 的二维数组的最佳做法
- 从 T 创建 std::future 的最佳方式<T>
- 是否可以从 std::any 创建 std::any 与 std::reference_wrapper?
- 从编译时已知的日历日期创建"std::chrono::time_point"
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何从可变参数模板参数创建 std::tuple<>?
- 使用成员函数创建std::函数不会编译
- 通过预处理器创建 std::p air<std::string,some_enum>
- 创建 std::set 只复制一个元素,如何解决这个问题?
- 动态创建 std::vector 并将其传递给另一个函数的各种方法
- 编译问题 C++ 同时,尝试通过调用另一个对象中的成员函数来创建 std:: 线程
- 从函数应用程序创建 std::vector
- 创建 std::thread 时出现错误 C2280,未在 C++ 中初始化
- 使用std :: to_string()创建std :: String时的segfault
- 将C 数组写成文件,避免创建std :: String
- 稍后使用<Class>调用类构造函数创建 std::vector