【发布时间】:2011-09-27 00:43:54
【问题描述】:
我一直在尝试将整数写入文件(打开模式为 w)。 fprintf 写对了,但是 fwrite 写的是乱码:
int length;
char * word = "word";
counter = strlen(word);
fwrite(&length, sizeof(int), 1, file);
fwrite(word, sizeof(char), length, file);
文件中的结果是:
单词
但如果我改用 fprintf,像这样:
int length;
char * word = "word";
counter = strlen(firstWord);
fprintf(file, "%d", counter);
fwrite(word, sizeof(char), length, file);
我在文件中得到这个结果:
四个字
谁能告诉我我做错了什么? 谢谢!
更新:我最终想将写入更改为二进制(我将以 wb 模式打开文件),我的实现会有什么不同吗?
【问题讨论】:
-
长度未初始化。
-
@omrib:他可能喜欢把垃圾写到文件里;)