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

 ( hanischz | 2009. július 14., kedd - 8:10 )

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ás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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?

QtCreator / mingw fordítót használok Win alatt. Sehogy nem megy, már azt hittem én vagyok a ludas. Sztem Qt-t fogok használni a fájkkezelésre is.

Lehet h fordítót kellene cserélnem? Talán az újabb mingw? Köszi a válaszokat mindkettőtöknek!

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

Működött az új mingw-vel. Köszi!

Közben megtudtam, hogy vagy egy hónapja megjelent a hivatalos mingw 4.4...

Most a projecteim közepén nem váltok, de azért jó tudni...

"...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.

Jó ezt is tudni, köszönöm, csak meg akartam tanulni a c++-os fájlkezelést, mert eddig csak c-s preferáltam.