这是我的代码:
#include<stdio.h>
#define ROW 10
#define COLUMN 20
int main(int argc, char *argv[]){
FILE* fptr;
char grid[ROW][COLUMN];
int i ,j;
fptr = fopen(argv[1],"r");
for ( i = 0; i < ROW; i++){
for ( j = 0; j< COLUMN; j++){
fscanf(fptr,"%c",&grid[i][j]);
}
}
for(i = 0; i< ROW; i++){
for(j = 0; j< COLUMN; j++){
printf("%c",grid[i][j]);
}
}
return(0);
}
这是我的输入文件:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这是我的输出:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
但是它应该看起来像输入文件本身。我不知道自己做错了什么,因为我感觉自己很无能,我需要这份工作来做作业。问题是输入文件需要存储为2d数组,因为稍后在数组的元素上将用于比较创建COnways的生活游戏。
fscanf也读取空格和换行符,您可以跳过它
#include<stdio.h>
#define ROW 10
#define COLUMN 20
int main(int argc, char *argv[]){
FILE* fptr;
char grid[ROW][COLUMN];
int i ,j;
fptr = fopen(argv[1],"r");
for ( i = 0; i < ROW; i++){
for ( j = 0; j< COLUMN; j++){
fscanf(fptr,"%c ",&grid[i][j]);
}
fscanf(fptr,"\n");
}
for(i = 0; i< ROW; i++){
for(j = 0; j< COLUMN; j++){
printf("%c ",grid[i][j]);
}
printf("\n");
}
return(0);
}
在读取文件之前确定行大小,列大小不是一个好习惯。您可以使输入文件的第一行包含行大小,列大小。