[MEGOLDVA] decimális szám kiiratása hex-ban fájlba nem működik

Fórumok

Sziasztok!

Képernyőre működik a hexában történő kiiratás, fájlba nem. Fordító hiba vagy én bénázok?

//Ez jó:
int tmp = 13;
cout << hex << tmp << endl;

Ez nem:
ofstream of;
//of.setf ( ios::hex, ios::basefield );
//of.setf(ios::showbase);
of.open("probe.txt");
int tmp = 13;
of << hex << tmp;
of.close();

A fájlban megjelenik "1" illetve "3" és nem a "d".

Köszönöm a válaszokat!
Ha így nem működik akkor QFile-t fogok használni.

Hozzászólások

Milyen oprendszert/fordítót használsz? Nálam működik a dolog fedora10 alatt...

Nalam is mukodik.
Az of.stf(ios::hex, ios::basefield) sorral se mukodik? Vagy azt mas okbol kifolyolag nem akarod hasznalni?

A kódod változtatás nélkül jól működik win alatt mingw 4.4.0-val.

Lehet, hogy a 3.4.x-esben (utolsó hivatalos mingw, ez jön Qt-val) még nincs rendesen megírva (wstring egyáltalán nincs win alatt, szóval ez sem lenne meglepő...).

Én a TDM mingw-t használom, Qt-val is, nyugodtan válthatsz. De ha egyébként is Qt-s a project, nyugodtan használd a Qt fájlkezelését...

Workaroundként megpróbálhatod sstream-be betolni, majd a kapott stringet kiíratni a fájlba...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Azert csak halkan jegyeznem meg, hogy a fprintf(fd, "%x\n", tmp) erre a celra sokkal rovidebb es megfelelobb, minden pure C volta ellenere.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.