Jak odczytać plik i zapisać do postaci binarnej np.
ab
do
char data=[0x97, 0x98]
Znam sporą podstawę o programowaniu w C++
chciałbym żeby wczytać np jakiś plik i zapisać go do char żeby wyglądało min. tak jak pisałem
mam takie coś
#include <fstream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
ifstream rfs(argv[1], ios::binary);
ofstream wfs("data.h");
wfs<<"unsigned char data[]=""\"";
unsigned char ch;
for(unsigned i=0; rfs>>ch; ++i)
{
if((i)&&(!(i&15))) wfs<<"";
wfs<<"0x"<<setw(2)<<setfill('0')<<hex<<(unsigned)ch<<",";
}
wfs<<"0x00\"\;";
wfs.close(); rfs.close();
return 0;
}
Hello World! zapisuje do unsigned char data[]="0x48,0x65,0x6c,0x6c,0x6f,0x57,0x6f,0x72,0x6c,0x64,0x21";
a z tego wychodzi HelloWorld!
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
stringstream stream;
stream << "Hello World!";
string str;
getline(stream, str);
cout << hex;
for(auto c : str)
cout << (int) c << " ";
return 0;
}
Tak swoją drogą za to co próbujesz zrobić powinno się karcić po łapach.
To twoje coś nawet nie chce sie skompilować http://prntscr.com/7zog45
Znam sporą podstawę o programowaniu w C++
; http://ideone.com/RsOVZN, żeby nie być gołosłownym
Może o taki zapis i odczyt binarny Ci chodziło?
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void zapisz(string napis) {
size_t dlugosc = napis.length();
fstream plik("test.bin", ios::out | ios::binary);
if (plik.is_open()) {
plik.write((char*)&dlugosc, sizeof(int));
for (size_t i = 0; i < dlugosc; ++i)
plik.write((char*)&napis[i], sizeof(char));
plik.close();
}
}
string odczytaj() {
string napis = "";
int dlugosc = 0;
char znak = ' ';
fstream plik("test.bin", ios::in | ios::binary);
if (plik.is_open()) {
plik.read((char*)&dlugosc, sizeof(int));
for (int i = 0; i < dlugosc; ++i) {
plik.read((char*)&znak, sizeof(char));
napis.push_back(znak);
}
plik.close();
}
return napis;
}
int main() {
string napis = "Hello world!";
zapisz(napis);
cout << odczytaj() << endl;
return 0;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
97 != 0x97
!!!!!!!!!! ->9 == 'a'
,0x97 == '—'