[第一篇文章,将尽我所能遵守指南,并进行适当的设置。如果有任何需要,请告诉我!
VS 2019中的错误是“ C6064:'fscanf'缺少整数参数,它对应于转换规范'2'。”下面的代码在我的代码中断的部分中给出。到此为止的其余部分都很好,并且可以正确编译。错误的行是fscanf。
整个代码:https://pastebin.com/DCgEa64g(对不起,所有遗漏的变量都已得到处理!)
fp = fopen("codefile.txt", "r");
if (fp == NULL)
{
printf("could not open codefile.txt\n");
return 1;
}
i = 0;
while (!feof(fp))
{
fscanf(fp, "%c", &code[i]);
i++;
}
我张贴的这一部分是我扫描文件codefile.txt,并将每个字符保存到字符串数组中,然后将该数组与“加密消息”进行比较以获得答案。该代码编译了正确的答案,但我无法解决此错误。出现的另一条消息是“'fscanf':没有为格式字符串传递足够的参数”,但我假设字符串数组中的字符仅需要%c?
这也将codefile.txt中的每个元素分别放入代码数组,这是有意的。我完成了本任务的其余部分,所以我根本不要求别人为我做任何其他事情。我很乐意发布任何其他需要的代码!目的是读取带有数字的单独的消息文件,将它们放入数组中,解密并与codefile.txt字符串进行比较,以获取结果。我完成了95%的工作,需要一些帮助!任何澄清,只问!在明天晚上转这个:)
您的实际代码(在链接中,不在您的问题中)使用fscanf_s()
,其documentation表示:
更安全的函数(具有_s后缀)与其他版本之间的主要区别是,更安全的函数要求每个c,C,s,S和[type字段的字符大小都以紧随变量之后的参数。有关更多信息,请参见scanf_s,_scanf_s_l,wscanf_s,_wscanf_s_l和scanf宽度规范。
您的错误是未能提供额外的size参数。
谢谢约翰·兹温克;我最终通过在专门使用fscanf_s时将SIZE添加到参数中来使其工作。答案看起来像这样:
while (!feof(fp))
{
fscanf_s(fp, "%c", &code[i], SIZE); //SIZE was added here!
i++;
}
感谢您的帮助!