相关疑难解决方法(0)

如何在c ++中读取二进制数据?

我需要用C++读写二进制数据.我使用from ofstreamifstreamclasses但它不能读取像9,13,32这样的字符.如果有另一种方法来读写主题.

c++ file-io

8
推荐指数
2
解决办法
3万
查看次数

插入器和提取器读/写二进制数据与文本

我一直试图阅读iostream并更好地理解它们.偶尔我发现它强调inserters(<<)和extractors(>>)意味着在文本序列化中使用.这是一些地方,但这篇文章是一个很好的例子:

http://spec.winprog.org/streams/

<iostream>宇宙之外,有些情况下<<和>>以类似流的方式使用但不遵守任何文本约定.例如,他们在Qt使用时编写二进制编码数据QDataStream:

http://doc.qt.nokia.com/latest/qdatastream.html#details

在语言层面,<<和>>运算符属于你的项目要重载(因此QDataStream的作用显然是可以接受的).我的问题是那些使用<iostream><<和>>运算符来实现二进制编码和解码的人是否被认为是一种不好的做法.是否(例如)有任何期望,如果写入磁盘上的文件,该文件应该可以使用文本编辑器查看和编辑?

如果一个总是使用其他方法名称和基地他们read()write()?或者文本编码应该仅仅被视为默认行为,与标准库iostream集成的类可以选择忽略?


更新关于此的一个关键术语问题似乎是"格式化"与"未格式化"的I/O的区别(与术语"文本"与"二进制"相对).我发现了这个问题:

将二进制数据(std :: string)写入std :: ofstream?

来自@ TomalakGeret'kal的评论说:"我不想使用<<用于二进制数据,因为我的大脑将其视为"格式化输出",这不是你正在做的事情.再次,它完全有效,但我不会那样混淆我的大脑."

这个问题的公认答案说只要你使用就可以了ios::binary.这似乎支持了辩论的"它没有任何问题"...但我仍然没有看到任何权威来源的问题.

c++ text iostream binary-data

6
推荐指数
1
解决办法
1138
查看次数

标签 统计

c++ ×2

binary-data ×1

file-io ×1

iostream ×1

text ×1