将值从文本文件扫描到结构中

时间:2018-08-12 05:28:26

标签: c

我对py -2 -m pip install SomePackage # default Python 2 py -2.7 -m pip install SomePackage # specifically Python 2.7 py -3 -m pip install SomePackage # default Python 3 py -3.4 -m pip install SomePackage # specifically Python 3.4 函数有疑问。 我编写了一个代码,询问用户是否有用于输入数据的文件,以及是否读取数据并将值放入结构中。好吧,它不起作用。 我试图自己找到一个错误,但是失败了,所以我在这里寻求帮助。

用户输入输入内容的第一部分,程序将根据输入的内容创建一个文本文件,但是您可以看到扫描部分不起作用。任何帮助都会很棒。

fscanf_s

我将在第一部分中创建的文件用作第二部分的输入。我还测试了没有feof循环的fscanf_s()。同样的问题仍然发生。错误不断弹出,提示在program05.exe中的0x77506165(ntdll.dll)处引发了异常:0xC0000005:访问冲突写入位置0xCCCCCCF0。

1 个答案:

答案 0 :(得分:0)

您的读取代码中有两个问题会导致崩溃。

  1. 您正在将封闭文件指针传递给fscanf_s函数。

    fclose(file);

  2. 您正在将无效地址20传递给fscanf_s函数。

       fscanf_s(file, "%s" "%f" "%f", &guys[i].name,20,&guys[i].rate, &guys[i].hours);
    

    应更改为

     fscanf_s(input, "%s" "%f" "%f", &guys[i].name,&guys[i].rate, &guys[i].hours);
    

我建议您不要使用

while (!feof(input))

相反,请采用以下方法。

while (fscanf_s(input, "%s %f %f", &guys[i].name,&guys[i].rate, &guys[i].hours) == 3)
{
    i++;
}