4

我知道

fwrite(&variable,sizeof(datatype),<count>,<filepointer>); 

将数据写入二进制文件。但是如果我想将字符'c'直接写入二进制文件(不使用缓冲区变量)怎么办。放不下

 fwrite(&'c',sizeof(datatype),<count>,<filepointer>);

这可能吗?

4

3 回答 3

4

使用 putc 或 fputc (两者具有相同的签名):

int putc(int c, FILE *stream);

如果您对 putc 与 fputc 感兴趣,请查看下面的评论,他们比我更了解 :)

于 2012-12-11T13:19:18.420 回答
0

C中,您无法获得常量的地址。所以不,你不能。

于 2012-12-11T13:19:58.020 回答
0

尝试

fwrite("c",sizeof(datatype),<count>,<filepointer>);

例如

fwrite("c",1,1,fileptr);

注意:我自己没有测试过。但我怀疑这应该可行。

埃里克评论后添加:

fwrite((char []){'c'}, 1, 1, fileptr);

^^这种方法的优点是,就像 char 一样,您也可以插入整数或任何其他标准数据类型。

于 2012-12-11T13:20:09.883 回答