我正在编写一个函数来读取文件,并将其各种整数分配到一个结构数组中,以便稍后在程序中进行进一步处理。但是,我无法将读取的值分配给"更正"数组结构 - 所有值都通过变量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
另请注意,我是初学者,并且不理解分配int
与int *
之间的区别。感谢您对此特定问题的任何帮助。