在 C 和 C++ 处打印文件的十六进制数
我现在正在开发一个家庭项目,但在开始之前,我需要知道如何打印cout
文件的内容(例如*.bin)十六进制?
我喜欢学习,那么一个好的教程也很好 ;-)
请记住,我需要在不使用外部应用程序的情况下开发它,因为这个家庭项目是为了了解有关 C++ 和十六进制操作的更多信息也是我知识的一个很好的实践。
其他一些问题
- 有没有办法使用 C 来做到这一点?
- 如何将该值存储到变量中?
我已经掌握了 C++ 的方法,但是如何在 C 中实现呢?
I'm now developing a home project, but before I start, I need to know how can I printcout
the content of a file(*.bin as example) in hexadecimal?
I like to learn, then a good tutorial is very nice too ;-)
Remember that I need to develop this, without using external applications, because this home project is to learn more about hexadecimal manipulating on C++ and also a good practice of my knowledge.
Some other questions
- Is there any way to do this using C?
- How can I store this value into a variable?
I already got the way in C++, but how to make it in C?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
要打印十六进制:
但是可以,请使用 od 工具:- )
这里有一个很好的文件读取/写入教程。您必须将文件读入缓冲区,然后循环遍历文件的每个字节/字。
To print hex:
but yes, use the od tool :-)
A good file reading/writing tutorial is here. You will have to read the file into a buffer then loop over each byte/word of the file.
使用 od 工具。
Use the od tool.
另一个不错的十六进制转储工具是
xxd
也可以输出到C
数组。否则,要获得一些源代码,请参阅此处
Another good hexdump tool is
xxd
which also can output to aC
array.Otherwise to have some source code see here
我建议如下:
unsigned char
。[byte1] ...[byte16] [可打印
字符]
如果该字符不可打印,请使用“.”。检查
isprint
函数。通过一次读取一个字节来启动程序。让这个工作起来。
之后,您可以通过以下方式提高效率:
unsigned int
块读取缓冲区一次超过一个字节。
这是一个可以帮助您的模板:
I suggest the following:
unsigned char
.[byte1] ...[byte16] [printable
character]
If the character is not printable, use '.'. Check the
isprint
function.Start your program by reading one byte at a time. Get this working.
Afterwards, you can make it more efficient by:
unsigned int
and processingmore than one byte at a time.
Here is a stencil to help you out:
如果您有 Visual Studio,则可以将任何文件作为二进制数据打开。您将立即看到它的十六进制表示形式。
If you have Visual Studio, you can open any file as binary data. You'll see its hex representation right away.