c++ - 将 C++ 数组写入文件,避免创建 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);
推荐阅读
- excel - 如何使用 COUNTIF 计算日期范围之间的特定文本?
- kdb - kdb:避免在字符串中转义双引号
- python - 层的输入与预期输入的层不兼容
- python - 在不显示元素的情况下测试 Python Tkinter GUI 应用程序
- ruby-on-rails - 为什么我的 js 的子文件夹(在 sublime 上)带有淡淡的灰色?
- javascript - 如何让我的第一个可折叠默认打开
- c# - 如何使用 .NET 4 的 Lazy 解决依赖关系
输入 ASP.Net Core - node.js - 在 react js 中如何将带有参数的 axios GET 方法请求发送到 Node js 以及在 Node js 中如何获取这些参数
- html - bootstrap 3 -> 5 导航栏可折叠
- python - python tkinter快速绘制信封