我正在使用C++输出一个无符号字符数组,ofstream fout("filename");
但它会产生一个虚假字符.这是导致问题的代码的一部分:
for(int i = 0; i < 12; i++)
fout << DChuffTable[i];
Run Code Online (Sandbox Code Playgroud)
这是数组的定义:
unsigned char DChuffTable[12] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B};
Run Code Online (Sandbox Code Playgroud)
在输出文件,我收到了虚假0x0D之间0x09和0x0A.我在调试模式中检查了数组,然后才开始打印并且没有更改.请告诉我你对这个问题的看法.
Lig*_*ica 21
您的流在文本模式下打开,因为0x0A是换行(LF)字符,您的流将转换为0x0D 0x0ACR/LF.
以二进制模式打开您的流:
std::ofstream fout("filename", std::ios_base::out | std::ios_base::binary);
Run Code Online (Sandbox Code Playgroud)
然后不应执行行结束转换.
无论如何,这通常被认为是一个好主意,因为在文本模式下,流可以变得奇怪.
| 归档时间: |
|
| 查看次数: |
3700 次 |
| 最近记录: |