使用fscanf将相同的数据类型读入不同的变量

时间:2016-04-18 14:57:13

标签: c arrays structure

我正在编写一个函数来读取文件,并将其各种整数分配到一个结构数组中,以便稍后在程序中进行进一步处理。但是,我无法将读取的值分配给"更正"数组结构 - 所有值都通过变量BP.time[position]简单地分配给time

理想情况下,我的数组在运行函数的末尾看起来像这样:

BP.time[position] = {0001, 0002, 0003, 0004}
BP.sys[position] = {500, 400, 300, 200}
BP.dia[position] = {50, 40, 30, 20}

正在读入的示例数据文件:

0001 500 50
0002 400 40
0003 300 30
0004 200 20

错误的功能代码示例:

关于代码的注意事项:我知道它正在读取文件中的值,因为目前我的输出看起来像这样: BP.time[position] = {0001, 500, 50, 0002...}等等,只读取所有数字到时间变量。检查其他变量时,它们似乎输出(带有printf)它们的地址,而不是文件中的实际数字。

struct bloodPressure // GLOBAL DEFINITION
{
    int time[50];
    int sys[50];
    int dia[50];
}BP; // end struct BP

...

while (fscanf(filePtr, "%d, %d, %d", &time, &sys, &dia) != EOF) // INSIDE A FUNCTION 
    {
        BP.time[position] = time;
        BP.sys[position] = sys;
        BP.dia[position] = dia;
        position++;
        printf("%d\n", time); // DEBUGGING ATTEMPT
        printf("%d\n", sys); // DEBUGGING ATTEMPT
        printf("%d\n", dia); // DEBUGGING ATTEMPT

    } // end while

另请注意,我是初学者,并且不理解分配intint *之间的区别。感谢您对此特定问题的任何帮助。

0 个答案:

没有答案