Я пытался преобразовать часть C# в C ++, но не могу понять, почему она не работает.
Код C#:
FileStream fileStream = File.Open(filename, FileMode.Open, FileAccess.ReadWrite);
byte[] buffer = new byte[8];
fileStream.Seek(4L, SeekOrigin.Begin);
fileStream.Read(buffer, 0, 8);
fileStream.Seek(4L, SeekOrigin.Begin);
fileStream.Write(buffer, 4, 4);
fileStream.Write(buffer, 0, 4);
fileStream.Flush();
fileStream.Close();
Мой C ++ преобразование:
std::fstream fileStream("file.dtx");
if (fileStream.is_open()) {
fileStream.seekg(0, fileStream.end);
int length = fileStream.tellg();
fileStream.seekg(0, fileStream.beg);
char* buffer = new char[8];
fileStream.seekg(4, fileStream.beg);
fileStream.read(buffer, 8);
fileStream.seekg(4, fileStream.beg);
fileStream.write(buffer, 4);
fileStream.write(buffer, 0);
fileStream.flush();
fileStream.close();
delete[] buffer;
printf("Done!");
}