文件扫描C中的2d数组

文件扫描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

我正在处理一个问题,我必须扫描一个输入文件,然后将变量分配给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++)
        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]);