C 从文件中获取数字并将其放入数组时需要的建议

C 从文件中获取数字并将其放入数组时需要的建议,c,C,我正在编写一个程序,从一个txt文件中获取数字,并将它们放入两个不同的数组中 文本文件如下所示: 50 40 250 140 5 6 500 50 300 200 我需要将第一列中的所有数字放入一个数组,第二列放入另一个数组 这是我目前的代码: #include <stdio.h> #include <stdlib.h> #include <string.h> int main()

我正在编写一个程序,从一个txt文件中获取数字,并将它们放入两个不同的数组中

文本文件如下所示:

    50 40
    250 140
    5 6
    500 50
    300 200
我需要将第一列中的所有数字放入一个数组,第二列放入另一个数组

这是我目前的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main()
    {
        FILE * ifp = fopen("input2.txt","r"); //Open the input file
        int cars = 5, i , j; // Initialized cars and counters i and j
        char VIEW[20], BID[20], CLOSE[20];
        int CAR[10], START_BID[10], MIN_INCREASE[10];
        int *b; // Temp pointer to current bid
        int  *m; // Temp pointer to current array of the minimum increase

        strcpy(VIEW, "VIEW");
        strcpy(BID, "BID");
        strcpy(CLOSE, "CLOSE");

     for (i = 0; i < cars; i++) {
         b = &START_BID[i]; // Get pointer to current START_BID
         m = &MIN_INCREASE[i]; // Get pointer to array of current MIN_INCREASE
         fscanf(ifp, "%d", &b[i]);
         for (j = 0; j < cars; j++) {
             fscanf(ifp, "%d", &m[i]);
         }
     }

        printf("%d\n", START_BID);
        printf("%d\n", MIN_INCREASE);

            fclose(ifp);

        return 0;
    }
关于如何将数字放入正确的数组,有什么想法吗?

这里有一个解决方案:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE * ifp = fopen("file.txt","r"); //Open the input file
    int cars = 5, i , j; // Initialized cars and counters i and j
    char *view="VIEW", *bid="BID", *CLOSE="CLOSE";
    int CAR[10], START_BID[10], MIN_INCREASE[10];

    for (i = 0; i < cars; i++) 
    {
        fscanf(ifp, "%d %d", &START_BID[i],&MIN_INCREASE[i]);
    }

    for (i = 0; i < cars; i++) 
    {
        printf("%d %d\n", START_BID[i], MIN_INCREASE[i]);
    }
    fclose(ifp);
    return 0;
}

根据您的问题,要读取数据,必须对第一个循环进行如下修改

 for (i = 0; i < cars; i++) {
     fscanf(ifp, "%d", &START_BID[i]);
     fscanf(ifp, "%d", &MIN_INCREASE[i]);
 }

@德里克。。从代码中,您正在读取cars*cars,即m[i]的25个值,而该文件只有10个值。你能确认一下逻辑吗?此外,fscanfifp、%d、&b[i];读入b[i],相当于START_BID[i][i]。运行此程序时您是否遇到任何访问冲突?@Ganesh我没有遇到任何访问冲突。@Drieke。。我明白你为什么没有得到访问权限。在你的公式中,j=0;j for (i = 0; i < cars; i++) { fscanf(ifp, "%d", &START_BID[i]); fscanf(ifp, "%d", &MIN_INCREASE[i]); }
printf("\nStarting Bids:\t");
for (i = 0; i < cars; i++) {
    printf("%d\t", START_BID[i]);
}

printf("\nMinimum Increase:\t");
for (i = 0; i < cars; i++) {
  printf("%d\t", MIN_INCREASE[i]);
}

printf("\n");
Starting Bids:  50      250     5       500     300
Minimum Increase:       40      140     6       50      200