Formátovaný zápis súboru v programe WINAPI - c ++, c, visual-studio-2010, winapi, io

s WriteFile príkaz, snažím sa napísať do súboru v dizajne, ktorý si prajem. Problém je, že musím napísať do súboru pomocou reťazca alebo vyrovnávacej pamäte.

Musím vytlačiť vo formáte:

a1   a2   a3   a4   a5
b1   b2   b3   b4   b5
.
.
.

a to sú dvojité typy. Hlavným problémom, ktorý mám, je zreťazenie reťazcov a čísel. Ak je to možné, mohol by som jednoducho urobiť, (ak povedzme + je operátor, môžeme :)

a1^"   "^a2^"   "^   "^a4"n".

a slučka, ale nemám túto možnosť.

Oceňujem akúkoľvek pomoc.

odpovede:

1 pre odpoveď č. 1

Jedna možnosť je použiť std::ostringstream (alebo std::wostringstream pre široké znaky), aby ste mohli formátovať údaje do reťazca a potom ich napísať do súboru.

std::ostringstream strm;
double a = 1.1;
double b = 2.2;
strm << "hello " << a << " world " << b;

DWORD written;
WriteFile(handle, strm.str().c_str(), strm.str().size(), &written, NULL);

2 pre odpoveď č. 2

Predformátovať údaje do vyrovnávacej pamäte. Ak môžete naozaj používať iba WinAPI, môžete to urobiť wsprintf, Potom, keď máte vyrovnávaciu pamäť plnú správne formátovaných dát, napíšte celú vec na disk naraz WriteFile, Samotný však, WriteFile nemá vôbec žiadne možnosti formátovania alebo konverzie.


Súvisiace otázky
Ponuka