gpt4 book ai didi

c - 读取数据并分配给数组

转载 作者:行者123 更新时间:2023-11-30 17:01:57 24 4
gpt4 key购买 nike

我希望能够使用 scanf() 读取此 txt 文件的每一行并将每一列分配给一个数组。

    220
01 01 5.00 1.50
02 01 4.00 3.00
02 02 3.00 4.00
03 01 4.50 3.00
03 01 7.50 2.50
03 01 6.00 0.50
04 01 2.00 3.00
04 02 2.00 3.00
05 01 1.50 3.00
07 01 5.00 1.00
09 01 1.50 6.00
-1

到目前为止我只有:

    #define MAXSIZE 100    

int main(int argc, char *argv[]) {
int i;
int a, b;
double c, d, e;
int A[MAXSIZE], B[MAXSIZE];
double C[MAXSIZE], D[MAXSIZE

i = 0;
scanf("%d %d %lf %lf", &a, &b, &c, &d);

A[i] = a;
B[i] = b;
C[i] = b;
D[i] = d;

i+=1;
}

有什么办法可以做到这一点吗?

最佳答案

确保文件的行数不超过 MAXSIZE。

您可以使用 fscanf 代替 scanf

如果您确实需要 scanf,您可以将文件作为输入发送到您的程序

$ ./test < test.txt

此代码将与文件和 fscanf 函数一起使用。

#include <stdio.h>

#define MAXSIZE 100

int main(int argc, char *argv[]) {
int i;
int a, b;
double c, d, e;
int A[MAXSIZE], B[MAXSIZE];
double C[MAXSIZE], D[MAXSIZE];

FILE* fp = fopen("teste.txt", "r");

if(fp == NULL) {
printf("Failed to open file.\n");
return 1;
}

fscanf(fp, "%d", &i);// ignore first value
i = 0;
while (fscanf(fp, "%d %d %lf %lf", &a, &b, &c, &d) == 4) {
A[i] = a;
B[i] = b;
C[i] = b;
D[i] = d;

i++;
printf("%d %d %f %f\n", a, b, c, d);
}
return 0;
}

关于c - 读取数据并分配给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com