这是我的第一篇文章,如果我违反任何不成文的规则,非常抱歉。:PI 是一个初学者/中级程序员,我需要这个程序的帮助。
我正在尝试将 .dat 文件作为 HEX 输入/读取/ifstream(无论如何)到一个大字符串中。
我不想把它当作文本来阅读。我想要十六进制格式,这样我就可以搜索字符串并对其进行更改。(就像一个自动十六进制编辑器)
前任。我的文件“00000000.dat”的大小约为 7kb。
在十六进制编辑器中,十六进制如下所示:
0A 00 00 0A 00 05 4C 65 76 65 6C 07 00 06 42 6C 6F 63 6B 73 00 00 80 00 07 FF 39
01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02
FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF
39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03 02 FF 3F 00 07 FF 39 01 FF 03 03
02 FF 3F 00..... for a while...
我需要将所有这些都放在一个字符串变量中(最好没有空格)。
我当前的代码很糟糕,现在只打印结果。(从 ehow 获得)并且似乎选择了它想要输入/打印的内容。
#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream input;
input.open("00000000.dat");
unsigned char h1,h2;
do
{
input >> h1;
cout << hex << (unsigned int)h1;
input >> h2;
cout << hex << (unsigned int)h2;
}while(!input.eof());
cin.get();
return 0;
}
这是一个大文件,所以我无法向您展示它打印的内容,但它缺少一些字节。(例如“0A 00 00 0A 00 05.....”打印为“00 05.....”)结尾也是如此。
对不起,如果我没有很好地解释它:(