我希望读取我的data.txt文件,并将其存储在名为bufferi的数组中
1 1 1
2 2 2
3 3 3
4 4 4
我正在写一段代码,看起来像这样
#include"stdio.h"
#include"stdlib.h"
int main() {
FILE *fp1;
int i,j;
int buffer[4][4]={0};
fp1 = fopen("exact_enumerated_config_442_cub_mc","r");
for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
fscanf(fp1,"%d", &buffer[i][j]);
}
// fscanf(fp1,"\n");
}
fclose(fp1);
for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
printf("%d ",buffer[i][j]);
}
printf("\n");
}
}
但我得到了输出...
1 1 2 1
5 1 6 1
17 1 18 1
21 1 22 1
为什么?
发布于 2013-04-25 22:07:14
获取所需的输出(1111,2222,...)更改:
fp1 = fopen("exact_enumerated_config_442_cub_mc","r");
至:
fp1 = fopen("data.txt","r");
Clarification:当使用fopen
时,你应该写下你想要读取的文件名。在这种情况下,您必须编写data.txt
,而不是exact_enumerated_config_442_cub_mc
...没有这个名字的文件,也没有像1 1 1,2 2 2,3 3 3,4 4 4这样的数据...
有关更多详细信息,请访问:
这是你的“修改”(删除了额外/浪费/额外的{
}
并编写了data.txt
)代码,它给出了你所需要的输出:1 1 1,2 2 2,3 3 3,4 4 4。它会输出名为buffer
的数组。这意味着..。
...数据复制成功!从 "data.txt"
到 buffer[4][4]
#include"stdio.h"
#include"stdlib.h"
int main()
{
FILE *fp1;
int i,j;
int buffer[4][4];
for ( i = 0; i < 4; i++ )
for ( j = 0; j < 4; j++ )
buffer[i][j] = 0;
fp1 = fopen("data.txt","r");
for(i=0; i<4; i++)
for(j=0; j<4; j++)
fscanf(fp1,"%d", &buffer[i][j]);
fclose(fp1);
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%d ",buffer[i][j]);
printf("\n");
}
return 0;
}
P.S.
如果data.txt
将包含not
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
但
1 1 1 1
2 2 2 2
3 3 3 3
4 444 // the last two elements are absent
程序将正确读取第1行、第2行和第3行,第4行的输出为
4 444 0 0
它输出4
,然后是444
,然后是0
和0
:最后两个元素是‘0’,因为buffer
已经被零初始化,所以所有元素都更改了它们的值,但最后两个元素仍然是零。
https://stackoverflow.com/questions/16216799
复制相似问题