как записать целое число в файл (разница между fprintf и fwrite)

Я пытался записать целое число в файл (открытый режим - w). fprintf написал это правильно, но fwrite написал тарабарщину:

int length;
char * word = "word";

counter = strlen(word);
fwrite(&length, sizeof(int), 1, file);
fwrite(word, sizeof(char), length, file);

и результат в файле:

word

, но если я использую вместо этого fprintf, например:

int length;
char * word = "word";

counter = strlen(firstWord);
fprintf(file, "%d", counter);
fwrite(word, sizeof(char), length, file);

, я получаю следующий результат в файле:

4word

может кто подскажет, что я сделал не так? спасибо! Обновление

: в конце концов я хотел бы изменить запись на двоичную (я открою файл в режиме wb), будет ли разница в моей реализации?

12
задан Nicolas Kaiser 1 July 2011 в 21:55
поделиться