- 主题:string用fstream写 想写成二进制 失败了
这样写进去怎么都应该是字符原文啊
【 在 scanworld (臭蛋超人) 的大作中提到: 】
: fstream a("./file.dat", ios_base::out | ios_base::binary);
: string b = "fasdfa;l3242;ljafd";
: a.write(b.c_str(), b.length());
: ...................
--
FROM 60.25.153.*
都说了直接把内存写到文件。内存里是字符,文件就是字符。你内存如果是整数,那文件自然就不是字符了。
【 在 scanworld 的大作中提到: 】
: 正常以二进制写到文件里不应该无法查看到字符吗
:
: 【 在 foliver 的大作中提到: 】
: ....................
- 来自「最水木 for iPhone13,4」
--
FROM 223.104.210.*
你的印象是错的
【 在 scanworld (臭蛋超人) 的大作中提到: 】
: 对 差不多的意思
: 但是印象里二进制写到文件里的内容 文本文件打开不是无法直接显示的吗 不是直观的字符也不是 ascii码的形式
:
: 【 在 bihai 的大作中提到: 】
--
FROM 223.104.105.*
严格来说是字符编码
【 在 tianmiaomiao (tianmiaomiao) 的大作中提到: 】
: 这样写进去怎么都应该是字符原文啊
: 【 在 scanworld (臭蛋超人) 的大作中提到: 】
: : fstream a("./file.dat", ios_base::out | ios_base::binary);
: : string b = "fasdfa;l3242;ljafd";
--
FROM 223.104.105.*
文本就是一种二进制表示方式
【 在 scanworld 的大作中提到: 】
: 对 差不多的意思
: 但是印象里二进制写到文件里的内容 文本文件打开不是无法直接显示的吗 不是直观的字符也不是 ascii码的形式
:
--
FROM 125.33.244.*
以二进制方式写文件似乎与字符编码无关吧
【 在 poikilotherm (呆子) 的大作中提到: 】
: 严格来说是字符编码
--
FROM 60.25.153.*
以ASCII码写数字0,就是0x30,以GB2112格式写全角数字0就是0xFF10
【 在 tianmiaomiao (tianmiaomiao) 的大作中提到: 】
: 标 题: Re: string用fstream写 想写成二进制 失败了
: 发信站: 水木社区 (Sun Jan 31 14:13:01 2021), 站内
:
: 以二进制方式写文件似乎与字符编码无关吧
: 【 在 poikilotherm (呆子) 的大作中提到: 】
: : 严格来说是字符编码
:
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 60.25.153.*]
--
FROM 36.33.150.*
感谢各位的回复 鼓捣了一上午搞定了 确实是印象出了问题 char范围内的文本 二进制写文件是不会受影响的 查看时还是内存里的内容 做了点小调整 实现了
--
FROM 106.39.0.*
原来的数值就是他本身啊,什么都不用做就行了。你要的是可显示字符还是原先的值?如果是原先的值就不需要什么函数,否则就是你同事用ascii码的可显示值,感觉你自己搞错了
【 在 bihai 的大作中提到: 】
: 这让我想起一个同事,我让他写一个简单的程序,通过串口输出一些指令和数据,比如0x02, 0x0A什么的。他写的是把这些数据变成0x30, 0x32, 0x30, 0x41,就是这些字符串的ASCII值。我要的是原来的数啊,02, 0A,他怎么就是不懂呢?
:
: 【 在 scanworld 的大作中提到: 】
: ....................
- 来自「最水木 for iPhone 7」
--
FROM 1.202.117.*
那是本来就不相同的两个字符好吧
【 在 liuxueshen ( rock) 的大作中提到: 】
: 以ASCII码写数字0,就是0x30,以GB2112格式写全角数字0就是0xFF10
--
FROM 218.68.145.*