fprintf() in C++ umwandeln
-
Hallo,
kann mir das:
fprintf(destination,"0x%02x,",*buff);
jemand evtl. in c++ umwandeln? fprintf kann ich nicht benutzen da ich streams für die datei benutze und der will ein "FILE", außerdem kenn ich nix womit man in c++ formatiert ausgeben kann
-
schon erledigt! bitte löschen!
-
#include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(){ FILE* destination; destination = fopen("test.txt", "w+"); int *buff, buf2 =333; buff = &buf2; fprintf(destination,"0x%02x,",*buff); // Alte Version ofstream destination2("test2.txt"); destination2<< "0x" << hex << setfill('0')<< setw(2) << *buff; // Neue Version }
-
interpreter schrieb:
destination2<< "0x" << hex << setfill('0')<< setw(2) << *buff; // Neue Version }
Hallo,
Da kommt dann sowas raus:
0x0H,0x0M,0x03,0x0W,0x0
,0x0
,0x0Also Ungültige Werte, mit dem sfprintf teil geht es (also erst in ne buffer variable und dann in "outfile" schreiben, ist halt umständlich
-
JimPoo schrieb:
interpreter schrieb:
destination2<< "0x" << hex << setfill('0')<< setw(2) << *buff; // Neue Version }
Hallo,
Da kommt dann sowas raus:
0x0H,0x0M,0x03,0x0W,0x0
,0x0
,0x0Also Ungültige Werte, mit dem sfprintf teil geht es (also erst in ne buffer variable und dann in "outfile" schreiben, ist halt umständlich
Dann liegt der Fehler bei dir, weil mein Sourcecode wunderbar funktioniert.
-
char buff[1]; char buffer[1]; ifstream infiles(argv[1], ios_base::in|ios_base::binary); while(!infiles.eof()) { infiles.read(buff, 1); if(!infiles.eof()) { //sprintf(buffer, "0x%02x,", *buff); //outfile << buffer; outfile << "0x" << hex << setfill('0')<< setw(2) << *buff << ","; } else { sprintf(buffer, "0x%02x", *buff); outfile << buffer; } } outfile << "\n};" << endl; }
So ist der Code, der Auskommentierte über deinem Code habe ich vorher genutzt (ging auch prima, hat aber manchma z.b. statt 0x0F 0xffffff6 oder so erzeugt)