我是C新手,無法使用指針和2D數組。我有一個文件,我想從中讀取值並將它們插入到二維數組中。該文件被格式化爲前兩位數分別是行數和列數,行中的其餘數字填充矩陣。目前它讀取行和列的數值,並且讀取第一行數字,但在此之後不會繼續。出了什麼問題?我假設我搞砸了與指針的東西,或者我很想念我的二維數組的理解東西C.如何在C中使用double for for 2維數組?
代碼:
#define MAXSIZE 10
FILE *fpin
..
int RdRowSize()
{
int row = 0;
fscanf(fpin, "%d", &row);
return row;
}
int RdColumnSize()
{
int col = 0;
fscanf(fpin, "%d", &col);
return col;
}
void RdMatrix(int *row, int *col, int matrix[][MAXSIZE])
{
int i = 0, j = 0;
*row = RdRowSize();
*col = RdColumnSize();
for(i ; i < *row ; i++) {
for(j ; j < *col ; j++) {
fscanf(fpin, "%d", &matrix[i][j]); /* this stops after i = 0 for some reason? */
}
}
}
void PrMatrix(int row, int col, int matrix[][MAXSIZE])
{
int i = 0, j = 0;
for (i ; i < row ; i++) {
fprintf(stdout," ");
for (j ; j < col ; j++) {
fprintf(stdout, "%5d ", matrix[i][j]);
}
fprintf(stdout, "\n");
}
fprintf(stdout, "\n");
}
int main()
{
int A[MAXSIZE][MAXSIZE];
int rowA = 0, columnA = 0;
RdMatrix(&rowA, &columnA, A);
PrMatrix(rowA, columnA, A);
..
}
fpin的內容:
3 3 0 6 4 2 2 5 4 5 0
其中應該讀取rowA = 3,rowB = 3(它確實)然後用其餘的數字填充矩陣,但它會在第一行之後停止。當我打印的矩陣我得到這個:
**** MATRIX **** Size = 3 x 3
0 6 4
請包括您的打印代碼。 – chrisaycock
我編輯過,對不起,第一次忘記了。 –
這是什麼意思「停止」? –