Ohjelmani kirjoittaa sarjaportista luettua dataa tiedostoon writefile funktiota käyttäen. Datalle joudutaan tekemään hieman laskentaa matkalla jonka aikana lopputulos tallennetaan float muuttujaan. Kun yritän kirjoittaa dataa seuraavalla tavalla:
WriteFile(InFile, &float, sizeof(float), &dw, NULL);
tulostaa ohjelma float muuttujan rekisteriarvon tiedostoon (näin ainakin olettaisin koska alkuperäiset sarjaportista luetut arvot löytyvät
tiedostoon tulostuvasta litaniasta). Ilmeisesti vikana on juuri tuo &-operaattori liukulukuun?
Miten saisi toimimaan?
WriteFile(InFile, &float, sizeof(float), &dw, NULL);
tulostaa ohjelma float muuttujan rekisteriarvon tiedostoon (näin ainakin olettaisin koska alkuperäiset sarjaportista luetut arvot löytyvät
tiedostoon tulostuvasta litaniasta). Ilmeisesti vikana on juuri tuo &-operaattori liukulukuun?
Miten saisi toimimaan?
Vastaukset 2
Vanhimmat
float iLuku = 5.5;
WriteFile(InFile, (void *)(&iLuku), sizeof(float), &dw, NULL);
float on varattu sana eikä sitä saa käytää muutujan nimessä
ja olet varmasti käsitelemässä binääri dataa, eikä tarkoituksenasi ole tehdä tekstitiedostoa ?
sain ratkaistua tuon, johtui WriteFilen tavasta käsitellä dataa, mitä ei tietenkään lukenut missään kun katselin vain msn:n dokumentaatiota...Kiitoksia kuitenkin