c++ - (C/C++) fscanf_s Missing Integer Arguments error when reading in Chars to Array from txt file
问题描述
第一篇文章,将尽我所能遵循指导方针并进行适当的设置。如果需要任何东西,请告诉我!
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()
,其文档说:
更安全的函数(具有 _s 后缀)与其他版本之间的主要区别在于,更安全的函数需要将每个 c、C、s、S 和 [ 类型字段的字符大小作为参数传递紧跟在变量之后。有关详细信息,请参阅 scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l 和 scanf 宽度规范。
您的错误在于未能提供额外的尺寸参数。
推荐阅读
- prolog - Prolog:尝试编译简单程序时不断出错
- android - How to clear jetpack datastore data on specific condition
- spring - springboot yml映射属性如何引用bean
- json - 如何使用 JQ 从 JSON 中删除不必要的项目?
- pandas - 如何在 tensorflow / keras 中移动像 pandas.shift 这样的张量?(无需将最后一行移到第一行,如 tf.roll)
- php - 如何检查带有罗马数字的句子php
- c# - DbContext 错误:在前一个操作完成之前在此上下文上启动了第二个操作
- python - Django Python电子邮件验证多个用户之间没有共享电子邮件
- bash - Azure CLI - 用于设置 API 管理自定义域的 Bash 脚本
- c# - 如何在不中断用户的情况下缓存对象?