Toto vlákno bylo označeno za vyřešené.
Čau,
můžete mi někdo říct, proč mi nefunguje atoi(str) ?? Vždy mi vratí 0...
Mám zápis v bin souboru, kde první je počet znaků a potom je text a jakmile přečtu první 4 byty a uložim do bufferu, tak atoi(buffer) mi vrátí 0
char buffer[64];
...
fread(buffer, sizeof(int), 1, file); // buffer vypada nejak (5,0,0,0,-52...)
int size = atoi(buffer); // vraci 0
...
KIIV ~ Moderátor
+43
God of flame
ted nejak nechapu o co se snazis... nacitas binarne 4 bajty ze souboru a divis se ze atoi, cekajici retezec, to nesezere?
Program vždy dělá to co naprogramujete, ne to co chcete...
tak předpokládal jsem, že to půjde, protože mě nějak nenapadá, jak mám teda z toho bufferu vytáhnout to int číslo
KIIV ~ Moderátor
+43
God of flame
bud pojedes po znacich nez narazis na prvni neciselny znak (misto nej hodis \0).. nebo to rovnou muzes uz prevadet na cisla... nebo nacist cely radek a zpracovat postupne .. (nahrazovat carky \0 a podhazovat to atoi... )
Program vždy dělá to co naprogramujete, ne to co chcete...
jano ~ Anonymní uživatel~ 85 příspěvků
int size;
fread(&size, sizeof(int), 1, file);
snazis sa o toto?
#5 jano
noo, takto to mám u zápisu u fwrite, ale fread má první parametr buffer, kam se to má uložit ne?
KIIV ~ Moderátor
+43
God of flame
#6 ingiraxo
ma to pointer, kam se ma ulozit zadanej pocet bloku (druhy parametr urcuje velikost bloku a treti parametr kolik se jich ma nacist)..
maximalne budes muset pretypovat: (void *)&size
Program vždy dělá to co naprogramujete, ne to co chcete...
no, tak v tom případě to považuju za vyřešený, jsem si vůbec neuvědomil, že tam může vstoupit reference jako u write.. dík ;)
KIIV ~ Moderátor
+43
God of flame
#8 ingiraxo
proste ziskas pointer .. je jedno na co.. klidne to muze byt pole integeru...
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků
Přidej příspěvek
Uživatelé prohlížející si toto vlákno Uživatelé on-line: 0 registrovaných, 32 hostů