C 编译错误-从文件中读入
我声明了一个字符数组,如下所示C 编译错误-从文件中读入,c,string,compilation,scanf,C,String,Compilation,Scanf,我声明了一个字符数组,如下所示 char workingString[1032] fscanf(ifp, " %s", &workingString); 我正在用fscanf阅读这个数组,就像这样 char workingString[1032] fscanf(ifp, " %s", &workingString); 在使用fscanf的特定代码行中,我得到了这个编译错误 warning; format '%s' expects argument of type 'cha
char workingString[1032]
fscanf(ifp, " %s", &workingString);
我正在用fscanf阅读这个数组,就像这样
char workingString[1032]
fscanf(ifp, " %s", &workingString);
在使用fscanf的特定代码行中,我得到了这个编译错误
warning; format '%s' expects argument of type 'char *', but argument 3 has type 'char (*)[1032]' [W-format]
我不明白错误说明了什么,因此我不知道从哪里开始纠正这个问题
fscanf(ifp, " %s", workingString);
fscanf(ifp, " %s", workingString);
对于
scanf()
或相关函数中的数组,绝对不能使用&
。这是因为您要获取数组的地址,这意味着结果值的类型为“指向1032字符数组的指针”,但fscanf()
需要一个普通的“指向字符的指针”。两个指针的值相同,但类型不同
因此,您只需删除&
运算符,因为数组的名称会衰减为指向第一个元素的指针: