我一直在尝试使用临时文件删除文件中间的字符。但是,当我打电话时
fputc(c, tmpfile);
其中c是char,tmpfile是FILE *,编译时得到以下内容:
dnhobf_fxn.cc:36:7: error: no matching function for call to 'fputc'
fputc(c, tmpfile);
^~~~~
/usr/include/stdio.h:243:6: note: candidate function not viable: no known
conversion from 'FILE *()' to 'FILE *' (aka '__sFILE *') for 2nd argument
int fputc(int, FILE *);
^
这究竟是什么问题,我该如何纠正?我不熟悉FILE *()和FILE *之间的区别。
答案 0 :(得分:2)
查看您的错误 - 编译器需要FILE*
,但您正在传递FILE *()
- 这是一个接受零参数并返回FILE*
的函数。具体来说,您通过this函数传递零参数并返回FILE*
。
据推测,您的临时文件名称错误。
答案 1 :(得分:0)
错误与陈述完全一致 - 其中一个参数是函数指针(tmpfile),而不是实际上是FILE *