0

存储字节的不好方法:
我在文件中存储了大约一些字节。字节由任意位(1 或 0)组成。
大约十个字节形成一个日志项。我在日志末尾添加了一个 '\n' 。
后来当我从文件中读取时(文件以文本格式存储和读取)。
我发现日志的一些两个字节组成一个 '\n'(0x0d,0x0a)
但是我使用文件流的' readLine() '来读取文件的内容,这显然无法识别正确的行尾。
我得到的结果是一个质量,但是有没有更好的方法来存储字节(包含任意 1 或 0)并从文件中读取?
我在qt中使用c++,如果可能的话IDE下的解决方案应该会更好。

我的英语很差。感谢您的耐心阅读!

4

2 回答 2

1

我怀疑您使用的是 Windows,并且您正在以文本模式编写并以二进制模式阅读。

在 Windows 上,保存到文件系统的文本文件应该在行尾有 \r\n (0x0d,0x0a)。当有 \n 时,以文本模式写入会自动添加 \r。以文本模式阅读将删除 \r,因此您永远不会看到它。

如果您以相同的模式(文本或二进制)读取和写入,那么您将看到与写入相同的数据。在 linux 上,文本模式和二进制模式没有区别,但你应该选择正确的模式以保持代码的可移植性。

如果这是一个二进制文件(听起来你在写字节而不是字符串),那么你可能应该使用二进制模式来读写。

于 2012-10-11T09:15:28.713 回答
0

您可以使用special characterto 代替'0'then 存储到文件并'\n'在行尾添加。试试这个,它可能会有所帮助。

于 2012-10-11T09:15:29.857 回答