我有一小段代码应该使用以下格式读取文件中的值:
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;
}
答案 0 :(得分:3)
问题在于,您从未在starting_positions()
中致电main()
。因此,文件永远不会打开,永远不会读取,particles
数组中的元素永远不会被赋值。
因此,particles
数组元素(particles
是全局)被隐式初始化为0
,这就是它打印的值。