Cの概念に問題があります。これは私の「プログラミングの特別なトピック: Linux と C」クラスの課題の一部です。特定の文字列をファイルに書き込む関数を作成しようとしています (これは会計プログラムであり、関数はページのヘッダーとフッターを書き込みます)、エラーが発生します。
私のコード:
#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 *’
これを修正する方法がわかりません。ポインターを少し操作してみましたが、エラー メッセージは変わりませんでした。このコードは、私のコードで実行したいことの孤立した例です。実際のコードを見たい場合は、お知らせください。これは、私が扱っていたことを表現するためのより明確な方法のように思えました。