[英]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.