文件扫描C中的2d数组
我正在处理一个问题,我必须扫描一个输入文件,然后将变量分配给I和j。输入文件(input.txt)必须如下所示:文件扫描C中的2d数组,c,arrays,2d,C,Arrays,2d,我正在处理一个问题,我必须扫描一个输入文件,然后将变量分配给I和j。输入文件(input.txt)必须如下所示: 100 20 500 70 10 3 250 25 600 100 我的代码看起来像这样 int i, j; float table[5][5]; FILE * ifp = fopen("input.txt","r"); // initiliaze array for (i=0; i <=1; i++) for (j=0;j<=4;j++) fs
100 20
500 70
10 3
250 25
600 100
我的代码看起来像这样
int i, j;
float table[5][5];
FILE * ifp = fopen("input.txt","r");
// initiliaze array
for (i=0; i <=1; i++)
for (j=0;j<=4;j++)
fscanf(ifp,"%f",&table[i][j]);
谢谢。我已经为此挣扎了一段时间。您希望将文件的列复制到数组的行中 要执行的操作:反转循环的
for (j=0;j<=4;j++)
for (i=0; i <=1; i++)
在scanf字符串格式的开头添加空格,空格应为%f”
添加的空间将允许捕获文件的换行符首先需要做几件事:
- 你看到你的桌子尺寸太大了吗
- 嵌套的
for
循环块没有用大括号括起来。如果在for
循环中有多条语句要执行,除非它们用大括号括起来,否则不会全部执行
现在来看看你的程序的功能
- 您可以使用一条
fscanf
语句在一行中读取这两个值。格式化字符串类似于“%f%f”
,后面有两个参数
- 您的输入文件总是不超过五行吗?如果它可以更长,那么您需要在运行时分配内存
希望能有所帮助。谢谢,这帮了大忙。
for (j=0;j<=4;j++)
for (i=0; i <=1; i++)
fscanf(ifp," %f",&table[i][j]);