我现在正在开发一个家庭项目,但在开始之前,我需要知道如何打印 cout
文件的内容(* .bin as example)in十六进制?
我喜欢学习,然后一个好的教程也非常好; - )
请记住,我需要在不使用外部应用程序的情况下开发它,因为这个家庭项目是要学习更多关于C ++的十六进制操作以及我的知识的良好实践。
其他一些问题
我已经在C ++中找到了方法,但是如何在C中实现呢?
答案 0 :(得分:6)
要打印十六进制:
std::cout << std::hex << 123 << std::endl;
但是,请使用od工具: - )
一个好的文件读/写教程是here。您必须将文件读入缓冲区,然后循环遍历文件的每个字节/字。
答案 1 :(得分:4)
使用od工具。
答案 2 :(得分:2)
答案 3 :(得分:2)
我建议如下:
unsigned char
。如果角色不可打印,请使用“。”。检查isprint
功能。
通过一次读取一个字节来启动程序。让这个工作。
之后,您可以通过以下方式提高效率:
unsigned int
并进行处理
一次超过一个字节。 这是一个可以帮助你的模板:
#include <iostream>
#include <fstream>
#include <cstdlib>
int
main(int num_parameters, char * argument_list[])
{
std::string filename("my_program.cpp");
std::ifstream inp_file(filename.c_str(), ios::binary);
if (!inp_file)
{
std::cerr << "Error opening test file: " << filename << "\n";
return EXIT_FAILURE;
}
unsigned char inp_byte;
while (inp_file >> inp_byte)
{
// *your code goes here*
}
inp_file.close();
return EXIT_SUCCESS;
}
答案 4 :(得分:-1)
如果您有Visual Studio,则可以将任何文件作为二进制数据打开。您将立即看到它的十六进制表示。