2013-07-07 95 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()或相关功能的阵列。