尝试从文件中打印数组

时间:2018-01-31 06:45:58

标签: c arrays file fopen

我是新来的,也是C的新手。

我想用fopen从文件中打印一个数组,但它似乎不起作用。

我的空数组是char matrix[25][25],现在我正在尝试打开一个文本文件并将其打印到数组中。 txt文件名为Matrix1.txt,由'*'' '的625个字符组成。

我现在要做的是:

//openfile(), LÄNGE=Lenght=25, BREITE=Height=25, datei=file, matrix=array
int dateiöffnen(char matrix[][LÄNGE], char* datei){

    FILE *fp;
    char cell;

    fp = fopen(datei, "r");
    if (fp == NULL){
        printf("Fehler!\n");  //Fehler=Error
    }
    else{
        for (int y = 0; y < BREITE; y++){
            for (int x = 0; x > LÄNGE; x++){
                fscanf(fp, "%c", &cell);
                matrix[x][y] = cell;
            }
        }

        fclose(fp);
    } 
}

所以后来我尝试打印阵列并使用该打印阵列播放生命游戏(它在一个开关中):

case 1: 
    dateiöffnen(matrix, "Matrix1.txt");
    play(matrix); 
    print(matrix);

但由于某种原因,它会打印一个空白数组,如果我尝试在主函数中运行openfile(),就像这样

int main(int argc, char *argv[]) {
    char matrix[BREITE][LÄNGE];
    int x, y;
    //srand(time(NULL));
    dateiöffnen(matrix, "Matrix1.txt");
}

它会打印一个这样的数组:

this

所以我很困惑,如果有人能给我一些暗示会发生什么,我会感到高兴和感激。

1 个答案:

答案 0 :(得分:1)

内循环中可能存在拼写错误:

Array ( [newcoach] => Array ( [0] => 6 [1] => 11 [2] => 12 [3] => 13 [4] => 14 ) )

应该是:

for (int x = 0; x > LÄNGE; x++){