使用fscanf_s时发生访问冲突
|
我想读取特定格式的文件,因此我使用fscanf_s和while循环。但是,一旦处理完fscanf_s,程序就会因访问冲突(0xC0000005)而崩溃。
这是代码:
FILE *fp;
errno_t err = fopen_s(&fp, \"C:\\\\data.txt\", \"r\");
if (err != 0)
return 0;
int minSpeed = 0;
int maxSpeed = 0;
char axis = \'@\';
while(!feof(fp))
{
int result = fscanf_s(fp, \"%c;%d-%d\\n\", &axis, &minSpeed, &maxSpeed);
if (result != 3)
continue;
}
fclose(fp);
该文件的内容基于行,例如:
-;10000-20000
X;500-1000
S;2000-2400
有人可以帮我吗?
没有找到相关结果
已邀请:
2 个回复
结乳
需要在变量地址后加上一个大小参数
但是我建议您不要使用
函数:它们比普通命名的函数差---它们需要进行相同的检查,并在不使用它们时使您感到安全。我建议您不要使用它们,因为存在错误的安全感,并且它们在许多实现中都不可用,从而使您的程序只能在可能的有限机器中运行。 使用普通的fscanf()
而且您对ѭ6的使用是错误的。 发生错误(文件结尾或匹配失败或读取错误...)时,ѭ7将返回EOF。 您可以使用
确定
失败的原因,而不必检查它在下次调用时是否会失败。
授巨