我需要一些帮助,我想从一个文件打印出来的信息(以字符)读取数据,并打印出其二维数组内容
我决定用一个二维数组,因为数据看起来是这样的
0 0 . . .
0 0 . . .
. . . . .
. . . . .
. . . . .
看来我不能打印出来与我准备现在
请参阅下面的代码:
/* Read from file, pass on file contents to a 2D array, Print file contents from 2D array*/
#include<stdio.h>
#include<string.h>
#define N 5
//My proposed function to print an array with contents from a file
void printboard(int **a, int n, int n);
int main(int argc, char *argv[])
{
char linestr[100];
int board[N][N];
int k;
int h=0, l=0;
if(argc==2) //File should be called from the terminal hence working with argc & argv
{
FILE *fp;
fp = fopen(argv[1], "r");
if(fp == NULL)
{
printf("Error, can't open '%s' file!!!\n", argv[1]);
return -1;
}
while (fgets(linestr,sizeof linestr, fp) != NULL)
for(k=0; k<strlen(linestr); k++)
{
if (linestr[k]!='\n')
{
board[h][l]=(int)linestr[k];
l++;
}
h++;
l=0;
}
fclose(fp);
}
printboard(board,h,l);
return 0;
}
void printboard(int **a, int n, int n)
{
int i, j;
for (i=0; i< N; i++)
{
for (j=0; j< N; j++)
{
printf("%c", a[i][j]);
}
printf("\n");
}
}
我对C有非常基础的知识,只在1.5个月前开始编码。有没有来自社区的建议,我可以如何解决这个问题或做得更好?其目的是以2D阵列格式打印文件的内容。我真的希望将数据用于二维数组,因为我需要进一步研究它以在称为Peg Solitaire的游戏中移动“0”。
尽管你有2个具有相同名称未使用的参数,你printboard方法,你可以对什么是错/最新预期的更精确? – DarkSquirrel42
我假设你指的是int n;在打印板功能中出现两次 – victoria277
这实在太多代码了。将来,把它归结为一个最小的例子。在这个过程中,你可能会发现自己的错误。 – dmckee