我正在做一項作業,我對 C 比較陌生。如果我得到一個這樣的輸入檔案:
25 08 10 15 10
10 13 50 60 70
10 10 15 00 90
00 05 07 80 12
10 05 60 70 88
我將如何正確地將這些存盤在一個陣列中,使其像二維陣列一樣顯示,或者以我對 C 的思考方式是不可能的。
我下面的代碼是將輸入檔案轉換為二維陣列的函式。假設我已經有其他功能錯誤檢查檔案是否格式正確。
void createMatrix(FILE *fp) {
int row = 5;
int col = 5;
char matrix[row][col];
int i, j;
char num[25];
rewind(fp);
for (i=0; i<row; i ) {
for(j=0; j<col; j ) {
fscanf(fp, "%s", name);
bingoCard[i][j] = name;
}
}
}
如果它是我正在尋找的整數,這將起作用,但我需要保留數字前面的 0,如
00
或08。我稍后還需要附加到這些數字,這就是為什么我需要以字串格式將它們放入陣列中。有人能指出我正確的方向嗎?
然后我需要在像這樣更新輸入檔案時列印輸入檔案
25X 08 10 15 10
10 13 50 60 70
10 10 15 00 90
00 05 07 80 12
10 05 60 70 88
uj5u.com熱心網友回復:
使矩陣中的每個元素成為字串(陣列)。例如
char matrix[row][col][10];
然后直接讀入該字串:
fscanf(fp, "%9s", matrix[i][j]);
但您也可以將矩陣創建為整數矩陣,然后使用printf格式來包含前導零:
int matrix[row][col];
// ...
fscanf(fp, "%d", &matrix[i][j]);
// ...
printf("d", matrix[i][j]); // Prints leading zero if value is only a single digit
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367270.html
