Próbowałem napisać liczbę całkowitą do pliku (trybem otwartym jest w). fprintf napisał go poprawnie ale fwrite napisał bełkot:jak napisać liczbę całkowitą do pliku (różnica między fprintf i fwrite)
int length;
char * word = "word";
counter = strlen(word);
fwrite(&length, sizeof(int), 1, file);
fwrite(word, sizeof(char), length, file);
a wynik w pliku to:
słowo
ale jeśli mogę użyć fprintf zamiast, jak to:
int length;
char * word = "word";
counter = strlen(firstWord);
fprintf(file, "%d", counter);
fwrite(word, sizeof(char), length, file);
Otrzymuję ten wynik w pliku:
4word
może ktoś powiedzieć co zrobiłem źle? dzięki!
aktualizacja: Chciałbym ewentualnie zmienić zapis na binarny (otworzę plik w trybie wb), czy będzie różnica w mojej implementacji?
długość jest niezainicjowana. –
@omrib: Prawdopodobnie lubi pisanie śmieci do plików;) –