gpt4 book ai didi

c - 如何将整数写入文件(fprintf和fwrite的区别)

转载 作者:太空狗 更新时间:2023-10-29 16:43:16 24 4
gpt4 key购买 nike

我一直在尝试将一个整数写入文件(打开模式是 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 模式打开文件),我的实现会有所不同吗?

最佳答案

fprintf 写入一个字符串。 fwrite 写入字节。因此,在您的第一种情况下,您正在将代表整数的字节写入文件;如果它的值为“4”,这四个字节将在不可打印的 ASCII 范围内,因此您不会在文本编辑器中看到它们。但是如果您查看文件的大小,它可能是 8 个字节,而不是 4 个字节。

关于c - 如何将整数写入文件(fprintf和fwrite的区别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com