我遇到了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