将未签名的字符写入输出文件
Writing unsigned char into an output file
这可能是一个简单的问题,但我不确定为什么我没有做对。 我有未签名的字符 buf,我需要将其数据写入输出文件f_out。当我写如下时:
f_out << buf;
我得到正确的数据。
但是,我想逐行写入数据,32位(char(在一行中,因为数据是二进制数。我使用了以下内容,但我得到了完全不同的数据:
for (int i = 1; i < Buff_size; i++) {
for (int j = 1; j <= 32; j++) {
f_out << buf[i];
}
f_out << endl;
}
在你拥有的代码中,以下循环:
for (int j = 1; j <= 32; j++) {
f_out << buf[i];
}
将在每行上写入数组的每个元素32 次!
如果你想做的是每个元素只写一次,但每行有 32 个元素,你需要这样的东西:
int i, j;
for (i = 0, j = 0; i < Buff_size; i++) {
f_out << buf[i];
if (++j == 32) { // 32 done ...
f_out << endl; // ... write newline
j = 0; // ... and reset count
}
else f_out << " "; // Stay on same line - but insert a space
}
if (j != 0) f_out << endl; // If we have 'leftover' buffer
请随时要求进一步的解释和/或澄清。
不确定我是否有问题。代码中存在多个问题:
(1( 您跳过了 buf[0],这意味着第一个字节没有写入文件。
(2(您正在写入相同的字节32次。
这是你所期望的吗?我想第二个代码应该更新为:
assert(Buff_size%32 == 0)
for (int i = 0; i < Buff_size/32; i++) {
for (int j = 0; j < 32; j++) {
f_out << buf[i*32 + j];
}
f_out << endl;
}
相关文章:
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- VI工作室代码错误无法打开输出文件主.exe
- 在代码块中查找输出文件
- 将未签名的字符写入输出文件
- 为什么我的代码不写入输出文件?
- 完成搜索任务时为空输出文件
- 如何将地图<列表<string>、矢量<string>>输出到输出文件?
- 无法在代码块 IDE 中打开输出文件.exe
- C++:更改 IF 语句中的输出文件
- 编译 gsoap 输出文件 (onvif) 时出现问题
- C++击球平均值程序使用输入/输出文件打印名称,平均值,最高/最低平均值时遇到麻烦
- while 循环中的流输出文件() 通常生成空文件
- 如何使用 Docker 访问输出文件
- 提升进程间共享内存删除、权限和输出文件
- 查找素数,然后将质数放入输出文件中
- GDB / C++ - 根据循环条件将多个变量记录到输出文件中
- 带有文件结束函数的 while 循环重复输出文件中的最后一个数字两次
- 我的输出文件未显示解决方案
- 输入文件中的第一个字符是输出文件中的最后一个字符,反之亦然
- C++,我正在尝试创建一个有效的.bmp输出文件