所以我有這個簡單的程序,它讀取文件中的值,然後我只是想將它們打印到屏幕上。數組打印到屏幕時發生問題。它在數組中間添加了一些隨機數。有人有一個想法是什麼問題?從文件讀入二維數組會返回C中的錯誤值?
這裏是我的代碼:
#include <stdio.h>
#include <stdlib.h>
#define MAXROW 10
#define MAXCOL 12
int main(void) {
int i,j;
char numbers[MAXROW][MAXCOL];
FILE *file; /* FILE pointer */
file = fopen("data.txt", "r"); /* open a text file for reading */
for(i=0;i<MAXROW;i++){
for(j=0;j<MAXCOL;j++){
fscanf(file, "%d\t", &numbers[i][j]);
if(numbers[i][j] == '\n')
i++;
}
}
for (i=0; i<MAXROW; i++) {
printf("\n");
for (j=0; j<MAXCOL; j++) {
printf("%d ", numbers[i][j]);
}
}
fclose(file);
return 0;
}
請剪切並粘貼文本。不是圖片 –
刪除'fscanf'格式字符串中的'\ t'。 '%d'格式自動跳過前導空格,但是你要求'\ t'被滿足。什麼是奇怪的'if(numbers [i] [j] =='\ n')i ++'for?你的意思是「休息」嗎?爲什麼當你打破內循環時不應該有隨機數字? char數字[MAXROW] [MAXCOL];'*未初始化*。 –
嘗試在char數字中將'char'更改爲'int';如果可行,我有一個答案。如果沒有,我不知道。 –