- 主题:string用fstream写 想写成二进制 失败了
fstream a("./file.dat", ios_base::out | ios_base::binary);
string b = "fasdfa;l3242;ljafd";
a.write(b.c_str(), b.length());
这样写进去 用文本文件打开file.dat 看到的都是正常的字符 原文
--
FROM 123.119.41.*
正常以二进制写到文件里不应该无法查看到字符吗
【 在 foliver 的大作中提到: 】
: 那你希望写成什么样子呢?
: 所谓二进制写,就是把内存直接写入文件,你的内存就是这些字符,当然文件就是这些。
: :
: ...................
--
FROM 106.39.0.*
对 差不多的意思
但是印象里二进制写到文件里的内容 文本文件打开不是无法直接显示的吗 不是直观的字符也不是 ascii码的形式
【 在 bihai 的大作中提到: 】
: 这让我想起一个同事,我让他写一个简单的程序,通过串口输出一些指令和数据,比如0x02, 0x0A什么的。他写的是把这些数据变成0x30, 0x32, 0x30, 0x41,就是这些字符串的ASCII值。我要的是原来的数啊,02, 0A,他怎么就是不懂呢?
:
--
FROM 106.39.0.*
感谢各位的回复 鼓捣了一上午搞定了 确实是印象出了问题 char范围内的文本 二进制写文件是不会受影响的 查看时还是内存里的内容 做了点小调整 实现了
--
FROM 106.39.0.*