例如TXT文件中的数据是这样
0 5 0.05
1 20 0.20
2 10 0.10
3 5 0.05
4 15 0.15
5 15 0.15
6 18 0.18
7 12 0.12
怎么把它们按每列读出来,分别放到三个不同的数组
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[])
{
if (argc < 2)return;
char *filename = argv[1];
FILE *fn;
int i = 0,j;
int a[10], *a0 = a;
int b[10], *b0 = b;
double c[10], *c0 = c;
int a1, b1; double c1;
if (fn = fopen(filename, "r"))
{
while (!feof(fn))
{
fscanf(fn, "%d %d %lf", a0++, b0++, c0++);
if (++i >= 10)
break;
}
fclose(fn);
}
printf("Column1\n");
for (j = 0; j < i; j++)
printf("A[%d]=%d\n", j, a[j]);
printf("Column2\n");
for (j = 0; j < i; j++)
printf("B[%d]=%d\n", j, b[j]);
printf("Column3\n");
for (j = 0; j < i; j++)
printf("C[%d]=%lf\n", j, c[j]);
system("pause");
}
没法按列 ,可以按行,然后每个元素插入不同的数组来组合列数据。
先按行读取(以回车换行符为行结束的判断符)
读取一行的内容后,再对一行的内容以空格为分隔衔将一行的内容分成三部分,分别存在数组中。
用个2维数组,把他们逐行存下来,,这样每一列也是一个数组,可以直接引用。。。
全部读取到内存中,然后数组行列转置
或者每次读取一行的某列,读取n次,这种办法效率比较低。