我有一小段代码应该从具有以下格式的文件中读取值:
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;
}
最佳答案
这里的问题是,您从未在 main()
中调用过 starting_positions()
。因此,该文件永远不会打开,永远不会读取,并且永远不会为 particles
数组中的元素分配任何值。
因此,particles
数组元素(particles
是一个全局)被隐式初始化为 0
并且这就是它打印的值。
关于c - 从文件中读取多个数字到 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39602901/