這是一個程序,主要是爲了在嘗試在較大的程序中使用它之前獲得fopen和類似語法的掛起。所以程序試圖完成的唯一事情就是打開一個文件(scores.dat),讀取該文件中的數據,將其分配給一個數組,然後打印該數組。從不兼容的指針類型中傳遞參數x'y'
這是代碼段的,我有一個錯誤:
int scores[13][4];
FILE *score;
score = fopen("scores.dat", "r");
fscanf("%d %d %d %d", &scores[0][0], &scores[0][1], &scores[0][2], &scores[0][3]);
printf("%d &d %d %d", scores[0][0], scores[0][1], scores[0][2], scores[0][3]);
fclose(score);
編譯時,我得到的錯誤:
text.c: In function 'main':
text.c:15: warning: passing argument 1 of 'fscanf' from incompatible pointer type
text.c:15: warning: passing argument 2 of 'fscanf' from incompatible pointer type
我將如何解決呢?
在情況下,它是很重要的,scores.dat看起來是這樣的:
88 77 85 91 65 72 84 96 50 76 67 89 70 80 90 99 42 65 66 72 80 82 85 83 90 89 93
98 86 76 85 99 99 99 99 99 84 72 60 66 50 31 20 10 90 95 91 10 99 91 85 80
而且因爲'FILE *分數;'是一個指針,他可能會需要使用: '的fscanf(得分, 「%d%d%d%d」,得分[0] [ 0],... etc.' – 2013-04-22 21:57:34
@MehdiKaramosly爲什麼?'fscanf()'修改它的參數。你當然不明白它是如何工作的(以及指針如何工作)。 – 2013-04-22 22:18:02
很長時間我沒有操作指針的地址......我知道,即使矩陣的元素在內存中放置成一個,所以你可以通過很多方式訪問地址:// // score + i * j * sizeof(int);' – 2013-04-22 23:38:07