我需要一些幫助,我想從一個文件打印出來的信息(以字符)讀取數據,並打印出其二維數組內容
我決定用一個二維數組,因爲數據看起來是這樣的
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