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

标签 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;
            }

最佳答案

这里的问题是,您从未在 main() 中调用过 starting_positions()。因此,该文件永远不会打开,永远不会读取,并且永远不会为 particles 数组中的元素分配任何值。

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

关于c - 从文件中读取多个数字到 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39602901/

相关文章:

java - 用户在 java 中从一系列行输入的二维数组,以行输入 "end"结尾

c - 如何用 C 语言读取这种格式的文件 ./filec &lt;input.in> <output.myout>

android - FileOutputStream 什么也不做(Android Studio)

php - PHP中遍历多维数组的递归方法

arrays - 在 Perl 中以编程方式更改排序顺序

Java 读取当前打开用于写入的文本文件

c - 过程链接表的用途是什么?

c - AES CTR对称加解密

c - 共享内存程序行为异常

c - (char指针和int相加)是什么,循环是什么?c是什么?