簡體   English   中英

C:打印二維數組時出現問題

[英]C: issue with printing 2d array

我正在使用C代碼,但在打印2d數組時遇到了問題。 而不是一次打印一個字符串,而是從要求的位置打印整個數組。

例如,輸入為“狗”,“貓”,“帽子”。 然后它將打印出:

DogCatHat
CatHat
Hat

這是我的代碼可以執行的操作:它從文件讀取。 它創建一個char數組的數組。 每個char數組中有30個char,此時從文件中讀取一個char。 然后,每行打印一個char數組。

代碼如下所示:

char fname[] = "folder/text.txt";
char arry[30][30];
FILE *file;

file = fopen(fname, "r");
for(int x=0; x<30; x++){
    for(int i=0; i<30; i++){
        arry[x][i] = fgetc(file);
    }
}

fclose(file);
for(int i=0; i<30; i++){
    printf("%s\n", arry[i]);
}

很可能我剛剛犯了一個明顯的錯誤,但是我找不到它。 所以請幫忙。

我認為文件中的字符串不是以null結尾的。 因此,您需要將空字符放在數組的最后一個字符處。

char arry[30][30]

for(int x=0; x<30; x++){
    for(int i=0; i<29; i++){  //You can write 29 characters + '\0'
        arry[x][i] = fgetc(file);
    }
    arry[x][29] = '\0';
}
for(int i=0; i<30; i++){
    printf("%s\n", arry[i]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM