fprintf和fwrite(写入字节到fp)

时间:2014-12-11 17:12:49

标签: c printf fwrite

我对fprintf和fwrite有疑问。 运行此代码时会写入多少字节(假设已正确设置fp)。

int i = 10000;

fprintf(fp,"%d",i);

fwrite(fp,sizeof(int),1,&i);

当我检查时分别为5个字节和9个字节。也许我错了。我以为它是4个字节,因为int。有人可以解释一下吗???感谢。

3 个答案:

答案 0 :(得分:1)

您如何检查写入的字节数? sizeof(int)取决于平台。

以下是fwrite的函数签名。

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

fwrite从ptr指向的内存块写入一个count元素数组,每个元素的大小都是字节大小。返回值给出了写入的实际字节数。大多数情况下,这将是*计数。

类似地,fprintf返回写入/打印的字符数。

答案 1 :(得分:1)

fprintf(fp,"%d",i);写入5个字节。它将10000写为字符串,5个字符

答案 2 :(得分:1)

fprintf将字符串10000(5个字节)写入文件,而fwrite10000sizeof(int)个字节)的二进制表示写入文件