可能的重复:
如何使 cout 表现得像二进制模式?
我使用 C++ 将二进制数据打印到标准输出,然后将其重定向到文件。
(我不想直接写入文件)。
但是,当我尝试打印该值时'0A'
我正进入(状态'0D 0A'
。 (这是我将输出复制到 HexEdit 时看到的内容)。
据我所知,'0A'
是 'new line' 的 ascii,所以 cout 会自动添加'0D'
这是'回车'。
我想要的是打印0A
独自的。我怎样才能做到这一点?
my code:
unsigned char *buf = new unsigned char[width+1];
for (int x = 0; x < width; x++)
{
buf[x] = (unsigned char) src[x];
}
buf[width] = '\0'
cout<<buf;
我见过这个:在 Windows 中将新行打印到文本文件,不带回车符 (CR)但这似乎对我没有帮助。
不确定你真的可以使用 cout 和<<
操作员无需大规模黑客攻击。这是因为当使用<<
cout 将所有数据视为文本数据,并将根据需要执行适当的转换 - 包括在 Windows 平台上打印换行符时添加 CR 字符。
您将需要使用write
cout 的方法,而不是使用插入运算符<<
. The write
方法不会格式化您的数据,但使用起来比较尴尬。
http://www.cplusplus.com/reference/iostream/ostream/write/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)