【发布时间】:2021-07-07 09:40:03
【问题描述】:
我正在尝试将 txt 文件转换为二维数组。但是后面的一些值被遗漏了。我想知道为什么会这样。
this is txt file's form I want to get
#define MAZE_ROW 11
#define MAZE_COL 22
char maze[MAZE_ROW][MAZE_COL];
int main(){
Get_Maze();
Print_Maze();
}
void Get_Maze(){
FILE *f=fopen("maze.txt","r");
for(int i=0;i<MAZE_ROW;i++){
for(int j=0;j<MAZE_COL;j++){
fscanf(f,"%c",&maze[i][j]);
}
}
fclose(f);
}
void Print_Maze(){
for(int i=0;i<MAZE_ROW;i++){
for(int j=0;j<MAZE_COL;j++){
printf("%c",maze[i][j]);
}
}
}
【问题讨论】:
-
为方便起见,请将输入 txt 文件的内容以及结果输出添加为文本块而不是链接图像。这将允许轻松复制+粘贴以重现问题。
-
首先,您需要在调用它们之前声明您的函数。第二,你为什么觉得少了点什么?你数过输出中的字符了吗?有几个?
-
实际上,我认为您将输入 txt 中的换行符读取到数组中。相反,您需要一些方法来跳过它们,只阅读
0|1内容。 -
fscanf(f,"%c",&maze[i][j]);也将读取'\n'。 황성문,这是你想要的吗?试试"%c"-------->" %c"(加空格)。