2013-07-07 112 views
-1

讀我已經聲明瞭一個字符數組,像這樣......編譯錯誤 - 從文件

char workingString[1032] 

我讀這個數組,象這樣的fscanf ...

fscanf(ifp, " %s", &workingString); 

我得到這編譯錯誤,我使用fscanf這個特定的代碼行

warning; format '%s' expects argument of type 'char *', but argument 3 has type 'char (*)[1032]' [W-format] 

我不明白什麼錯誤告訴,因此我不知道從哪裏開始糾正這種

回答

1

這是因爲你正在獲取數組的地址,這意味着結果值的類型是「指向1032個字符數組的指針」,但fscanf()需要一個普通的「指向字符的指針」。兩個指針的將是相同的,但類型不同。

因此,所有你需要的是因爲數組名衰減砸&操作的指針的第一個元素:

fscanf(ifp, " %s", workingString); 
+0

完美的 - 感謝 – FunkyT

1

使用

fscanf(ifp, " %s", workingString); 

你永遠不應該使用&在一個scanf()或相關功能的陣列。