【问题标题】:Concerning Converting Text file to Binary File c++关于将文本文件转换为二进制文件 c++
【发布时间】:2013-03-19 14:28:54
【问题描述】:

我整晚都在尝试获取一个简单的程序来读取文本文件,然后将其复制/写回二进制格式。

我的代码循环遍历文本文档,获取数据,将其放入缓冲区并将其写回。哎呀,我什至硬编码了我想用二进制写出的数据。

我用的是fstream,ofstream,例子:fp1.open("student.dat",ios::binary);

并且正在几个不同的网站上阅读,例如: http://www.functionx.com/cpp/articles/serialization.htm

http://www.cppforschool.com/tutorial/files2.html

我有工作代码,但是当我在 Notepad++ 中打开 .bin 文件时,我看到我的文本数据仍然看起来像文本,并没有真正“转换”为任何十六进制格式或任何其他格式。数字是,我仔细检查了它们是否准确,你知道,一个小网站,你可以在其中输入数字并吐出十六进制。

我厌倦了为什么我的文本没有转换,所以我销毁了所有代码并试图重新开始。 *因此缺乏例子”

所以,最后我的问题是,为什么文本没有以任何方式改变,这对于二进制文件和使用这种方法是否正常?我什至使用了预制的编码示例,结果都是一样的。我只是希望它看起来像 1 和 0,而实际上并非如此,而且一切都在正常工作吗?

我的主要项目是将 .OBJ 文件转换为二进制数据,但我真的应该如何看待这个?这个二进制文件应该是什么样子?

任何建议将不胜感激!!! 谢谢!

【问题讨论】:

  • 如果你想在文件中看到 1 和 0,那么你必须在文件中写入 1 和 0。
  • 文本字符只是二进制字符的一个子集——你期望什么“转换”?
  • 您需要一个包含 0 和 1 作为其唯一字符的文本文件。那不是二进制文件。二进制文件只是一个在读取时不被视为文本的文件 - 它被视为字节序列。文本编辑器专门用于阅读和编辑文本文件。
  • “我的主要项目是将 .OBJ 文件转换为二进制数据” - 嗯....obj files 是二进制
  • 我想我期待一切都是十六进制的。我现在正在阅读 ::binary 不会更改 ASCII,它只是将其写入。所以我的问题将变为:“如何将文本文件转换/序列化为不可读的二进制文件格式?”

标签: c++ binary


【解决方案1】:

我只是使用字符和字符串,并没有看到区别。一旦我开始使用其他数据类型,很明显发生了变化。我知道 .OBJ 和 .txt 是二进制文件类型,我只是预计会有更大的变化。我使用了 cplusplus.com 并查看了我需要了解的更多内容。感谢您尝试帮助我猜!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2014-07-29
    • 2016-08-31
    相关资源
    最近更新 更多