C++ C++;:没有从';文件*()';至';文件*';

C++ C++;:没有从';文件*()';至';文件*';,c++,c++11,file-io,C++,C++11,File Io,我一直在尝试使用临时文件删除文件中间的字符。然而,当我打电话时 fputc(c, tmpfile); 其中c是一个字符,tmpfile是一个文件*,我在编译时得到以下结果: 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

我一直在尝试使用临时文件删除文件中间的字符。然而,当我打电话时

    fputc(c, tmpfile);
其中c是一个字符,tmpfile是一个文件*,我在编译时得到以下结果:

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 *);
         ^

这里到底有什么问题,我该如何纠正?我不熟悉文件*()和文件*

之间的区别。错误完全如前所述-其中一个参数是函数指针(tmpfile),而不是实际的文件*

看看您的错误-编译器需要一个
文件*
,但您正在传递一个
文件*()
-这是一个接受零参数并返回
文件的函数*
。具体地说,您正在传入一个零参数的函数,并返回一个
文件*


大概你只是把临时文件的名字弄错了

显示如何声明
tmpfile
您的错误在其他地方。听你的编译器
tmpfile
几乎肯定不是
文件*
Oh。。。我很笨。实例文件*名为tmp,而不是tmpfile。@JustSid,谢谢。