C语言中的fwrite函数
fwrite函数用于二进制写入C语言中的fwrite函数,c,C,fwrite函数用于二进制写入 fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); 这里,“size_t size”中的大小表示字节,即fwrite()写入数据的nmemb元素,每个“size”字节长 “大小”可以是1字节,也可以是更多字节。对于2字节的int,如果我们给'size'1字节, 这个整数是怎么写的?可能写的整数是错的?或者,在写入整数并将大小值设置为2时,我们应该注意这个问题?写入的字节数将是nmem
fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
这里,“size_t size”中的大小表示字节,即fwrite()写入数据的nmemb元素,每个“size”字节长
“大小”可以是1字节,也可以是更多字节。对于2字节的int,如果我们给'size'1字节,
这个整数是怎么写的?可能写的整数是错的?或者,在写入整数并将大小值设置为2时,我们应该注意这个问题?写入的字节数将是nmemb*size 要不是ints,你会写
fwrite(buffer, sizeof(int), number_of_ints, file);
(由于int的大小取决于编译器-通常为4字节)使用
fwrite
编写int
数组时,需要使用:
size_t num = fwrite(array, sizeof(int), arraySize, file);
if ( num != arraySize )
{
// Deal with the error condition.
}
fwrite有一个奇怪的接口,但它所做的只是写入大小*nmemb字节。您可以写入(ptr,1,4,fp)或(ptr,4,1,fp),您将获得相同的输出
如果您写入(ptr,1,1,fp),您将获得最低内存地址的字节。在小端机器上,这是int的最低有效字节。在大端机器上,它是最高有效字节。如果
int
在您的框中是2字节,您写入(nmemb
)1字节
和(size
)1字节
您在小端字节框上得到低字节,在大端字节框上得到高字节。两字节整数?你在ZX80上吗?:-)