fwrite(&variable,sizeof(datatype),<count>,<filepointer>);
将数据写入到 二进制文件。但是如果我想将字符'c'直接写入二进制文件(不使用缓冲区变量),该怎么办?我不能放,
fwrite(&'c',sizeof(datatype),<count>,<filepointer>);
这是可能的吗?
fwrite(&variable,sizeof(datatype),<count>,<filepointer>);
将数据写入到 二进制文件。但是如果我想将字符'c'直接写入二进制文件(不使用缓冲区变量),该怎么办?我不能放,
fwrite(&'c',sizeof(datatype),<count>,<filepointer>);
这是可能的吗?
使用putc将或的fputc(两者具有相同的签名):
int putc(int c, FILE *stream);
如果你有兴趣putc将VS的fputc检查下面的评论,他们知道比我好:)
在C
,你不能得到一个常量的地址。所以不,你不能。
尝试
fwrite("c",sizeof(datatype),<count>,<filepointer>);
例如
fwrite("c",1,1,fileptr);
注:我没有自己测试过。但我怀疑这应该起作用。由Eric评论后
添加:
fwrite((char []){'c'}, 1, 1, fileptr);
的^^的优点这种方法,就像字符,你可以插入一个整数或任何其他标准数据类型也。
或'putc',可能会更快一些。 –
@larsmans谢谢,改变 – BlackBear
我的好奇心:putc和fputc有什么区别? – anishsane