存储字节的不好方法:
我在文件中存储了一些字节。字节由任意位(1或0)组成
大约十个字节构成一个日志项。我在日志末尾添加'\ n'
后来我从文件中读取(文件以文本格式存储和读取)
我发现日志的两个字节组成'\ n'(0x0d,0x0a)。
但是我使用文件流的' readLine()'来读取文件的内容,这显然无法识别出正确的行尾。
我得到的结果是质量,但是有更好的方法来存储字节(包含任意1或0)并从文件中读取吗?
我在qt中使用c ++,如果可能的话,IDE下的解决方案应该更好。
我的英语很差。感谢您的耐心阅读!
答案 0 :(得分:1)
我怀疑你正在使用Windows,你正在以文本模式写入并以二进制模式阅读。
在Windows上,保存到文件系统的文本文件应该在行尾有\ r \ n(0x0d,0x0a)。在文本模式下写入会在有\ n时自动添加\ r \ n。在文本模式下阅读会删除\ r \ n所以你永远不会看到它。
如果您以相同的模式(文本或二进制)进行读写,那么您将看到与您编写的数据相同的数据。在linux上,文本模式和二进制模式之间没有区别,但你应该让模式正确以保持代码的可移植性。
如果这是一个二进制文件(听起来像是在写字节而不是字符串),那么你应该使用二进制模式进行读写。
答案 1 :(得分:0)
您可以使用special character
代替'0'
,然后存储到文件中,并在该行的末尾添加'\n'
。
试试这个,它可能有所帮助。