从文件中读取多个数字到C中的结构

时间:2016-09-20 20:06:18

标签: c arrays file struct

我有一小段代码应该使用以下格式读取文件中的值:

0 0 0
0 0 2
0 2 0
0 2 2
2 0 0
2 0 2
2 2 0
2 2 2

成为结构的一部分。 我写了一个小程序来确认这是有效的,但是当我打印结果时,每个学期都得到0。我不确定我做错了什么,所以任何帮助都会非常感激。测试代码是:

#include <stdio.H>
#include <stdlib.H>

            struct particle
            {
                double x[3];
            };

#define N 8 //number of particles

            struct particle particles[N];

            void starting_positions()
            {
                int p;
                FILE * startingpositions;//any .txt file
                startingpositions = fopen("startingpositions.txt", "r");
                for(p=0;p<N;p++)
                {
                    fscanf(startingpositions,"%lf %lf %lf\n", &particles[p].x[0],&particles[p].x[1],&particles[p].x[2]);
                }
                return;
            }

            int main()
            {
                int p;
                for(p=0;p<N;p++)
                {
                    printf("%lf %lf %lf\n", particles[p].x[0],particles[p].x[1],particles[p].x[2]);
                }
                return 0;
            }

1 个答案:

答案 0 :(得分:3)

问题在于,您从未在starting_positions()中致电main()。因此,文件永远不会打开,永远不会读取,particles数组中的元素永远不会被赋值。

因此,particles数组元素(particles全局)被隐式初始化为0,这就是它打印的值。