Wie ktoś jak napisać w C++ tak aby tworzył taki plik?
0
1
#include<iostream>
#include<fstream>
using namespace std;
int main ()
{
unsigned char bytes[] = { 0x4d, 0x5a, 0x90, 0x03 };
const char *path = "test.dat";
fstream file(path, ios::out|ios::binary);
if(file.is_open()){
for(unsigned i = 0; i < sizeof(bytes) / sizeof(bytes[0]); ++i){
file.write((char*)&bytes[i],sizeof(bytes[i]));
}
file.close();
}
return 0;
}
Plik:
0
No bardziej mi chodziło że otwiera plik [text] i zapisuje go do pliku jak szesnastkowy
2
Nie pisz programu, tylko użyj istniejącego: xxd -i
0
Każdy plik można odczytać do hex
ponieważ przecież każdy plik jest tak naprawdę zapisany przez komputer w systemie binarnym. Jego gołe bajty da się odczytać:
#include<iostream>
#include<fstream>
using namespace std;
int main ()
{
const char *path = "hello.txt";
fstream file(path, ios::in|ios::binary);
if(file.is_open()){
unsigned char character = 0x00;
while(file.read((char*)&character,sizeof(character)))
cout << hex << (int)character << endl;
file.close();
}
return 0;
}
Powyżej czytanie znak po znaku, tak na szybko. Dobrze jest do tego jakiś bufor zrobić.
Tak poza tym to użyj jakiegoś edytora heksadecymalnego, bo otwierając plik i zapisując go bajt po bajcie szesnastkowo otrzymasz kopię pliku źródłowego.
0
Dzięki za pomoc :)