我遇到了C概念的问题。我将在前面,这是我的“编程专题:Linux和C”课程的一部分。我试图让函数写入特定的字符串到一个文件(这是一个会计程序,功能写页面页眉和页脚),我得到一个错误。C“参数的类型是'struct file *'”
我的代码:
#include <stdio.h>
void writeToFile(FILE dataOut, char content[])
{
fprintf(dataOut, content);
}
void main()
{
FILE *dataOut;
dataOut = fopen("testWrite.txt", "w");
writeToFile(dataOut, "Leave no bars un-foo'd.");
}
该错误消息我收到的时候我尝试编译:
testWrite.c: In function ‘writeToFile’:
testWrite.c:5:2: error: incompatible type for argument 1 of ‘fprintf’
In file included from testWrite.c:1:0:
/usr/include/stdio.h:357:12: note: expected ‘struct FILE * __restrict__’ but
argument is of type ‘FILE’
testWrite.c: In function ‘main’:
testWrite.c:12:2: error: incompatible type for argument 1 of ‘writeToFile’
testWrite.c:3:6: note: expected ‘FILE’ but argument is of type ‘struct FILE *’
我不知道如何解决这个问题。我试过操纵指针,但它没有改变错误信息。此代码是我希望我的代码执行的独立示例;如果你想看到实际的代码,请告诉我。这似乎是一种更清晰的方式来表达我正在处理的内容。
它好像你跳枪,使非常基本的错误结果;在学习函数之前,尝试学习对象类型。 – Sebivor 2013-03-05 01:57:29
如果我自己学习,我会慢慢学习,并且学得更深入;然而,我正处于一个时间限制,因此,有时我只需要一个问题的答案,而不必阅读教科书章节(或等同于互联网)。就像我在另一个评论中所说的那样,在我问这个问题之前,我确信我已经尝试了正确的解决方案。我对对象类型有一个很好的处理方式,但我认为还有更多的东西不仅仅是指针,所以我问。 – Chance 2013-03-05 18:44:57