编译错误 - 从文件读入

时间:2013-07-07 15:46:06

标签: c string compilation scanf

我已经声明了一个像这样的char数组......

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]

我不明白错误在说什么,因此我不知道从哪里开始纠正这个

2 个答案:

答案 0 :(得分:1)

使用

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

永远不要将&用于scanf()或相关函数中的数组。

答案 1 :(得分:1)

这是因为您正在获取数组的地址,这意味着结果值的类型为“指向1032字符数组的指针”,但fscanf()需要一个简单的“指向字符的指针”。两个指针的将是相同的,但类型不同。

因此,您需要的是删除&运算符,因为数组的名称衰减为指向第一个元素的指针:

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