解决了!非常感谢大家。我的一天已经完成了!(早上好,凌晨 4 点)
我正在尝试用 C++ 编写一个程序,该程序以二进制文件打开一个 .dat 文件,并将前 1840 个十六进制字符替换为另一个 .dat 文件的字符,同时使第一个 .dat 文件的剩余十六进制值保持不变。我今天在这上面花了大约 12 个小时,但收效甚微。我是一名初级程序员,我已经学习了一个学期的 c++ 课程,但我们没有进入流媒体。
(它会打开一个文件和所有内容,但在添加新值后会删除所有内容)
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>
#include <cstring>
using namespace std;
int main (){
string filename;
long size;
char* memblock;
cout << " Enter a file to be modded by Mod.dat ";
cin >> filename;
ofstream infile ( filename ,std::ofstream::binary);
//filename: the file that will be opened and changed)
ifstream modFile ("Mod.dat", ifstream::binary);
// (mod.dat is the file that i get the first 1840 hex values from)
modFile.seekg (0,modFile.end);
size = modFile.tellg();
memblock = new char [size];
modFile.seekg (0, ios::beg);
modFile.read (memblock, size);
infile.write(memblock, 1840);
modFile.close();
infile.close();
cout << endl;
return 0;
}
任何帮助将不胜感激,我希望有一些简单的方法可以做到这一点。
解决了!非常感谢大家。我的一天已经完成了!(早上好,凌晨 4 点)