Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
警告:格式指定类型参数类型const char*_C - Fatal编程技术网

警告:格式指定类型参数类型const char*

警告:格式指定类型参数类型const char*,c,C,我正在读取文件,然后进行排序: 168:35: warning: format specifies type 'char *' but the argument has type 'const char *' [-Wformat] while (fscanf(fp, "%49s", buf[len]) != EOF) ~~~~ ^~~~~~~~ %4

我正在读取文件,然后进行排序:

168:35: warning: format specifies type 'char *' but the argument has type 'const char *' [-Wformat]
        while (fscanf(fp, "%49s", buf[len]) != EOF)
                           ~~~~   ^~~~~~~~
                           %49s

提前谢谢

fscanf
将向
buf
写入字符。但是,您已将
buf
声明为
const char[][]
const
表示它是常量,不应更改。您应该将
buf
声明为
char[][]

我以前尝试过:168:33:警告:format指定类型“char*”,但参数的类型为“const char*”[-Wformat],而(fscanf(fp,“%s”,buf[len])!=EOF)~~^~~~~~~~~~~%49s并收到相同的警告。如果您甚至没有向我们显示警告的原因,您希望我们如何修复警告。我可以看到它与一些代码相关,但请提供,这样我们就可以使用它来获取上下文。它就是这么说的!函数需要一个
char*
,但您给了它一个
const char*
。除此之外很难知道,因为你没有提供
buf[len]
是可疑的(你的意思只是
buf
?),但是编译错误很奇怪,不管怎样,错误消息告诉你,
buf[len]
需要可写才能成功调用
fscanf()
。您在某处将其定义为
constchar*
变量,这意味着无法修改它。(编辑:刚刚看到您添加的代码。您是否尝试过从
const char buf[1000][50]
中删除
const
?)提示:避免将
scanf()
结果与
!=EOF
。最好使用
while(fscanf(fp,“%49s”,buf[len])==1)
。与您想要的内容进行比较,而不仅仅是许多您不想要的内容中的一项,并使用宽度限制
“%s”
。对于更复杂的扫描,差异是很重要的。2天内搞定,这可能是真的。谢谢你,罗布。你怎么这么快就明白了?@Nick\u Nick我对这门语言很有经验。@Nick\u Nick也许他读过错误信息,它告诉你问题出在哪里
    FILE *fp = fopen(filename, "r");
    int len = 0;

    printf("\nSort\n");
    const char buf[1000][50];
    const char *wordss[1000][50];
    while (fscanf(fp, "%s", buf[len]) != EOF)
    {
        wordss[len][0] = buf[len];
        len++;
    }

    write_buffer_text_file(wordss, len);
    read_buffer_text_file();