我正在做一些C編碼的任務,並遇到了一個奇怪的問題。我保存在一個txt文件內容如下:我是否錯誤地使用了fscanf?
11
1 1 0 1 0 0 0 1 0 0 0
0 1 1 0 1 0 0 0 1 0 0
0 0 1 1 0 1 0 0 0 1 0
0 0 0 1 1 0 1 0 0 0 1
1 0 0 0 1 1 0 1 0 0 0
0 1 0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 1 1 0 1 0
0 0 0 1 0 0 0 1 1 0 1
1 0 0 0 1 0 0 0 1 1 0
0 1 0 0 0 1 0 0 0 1 1
1 0 1 0 0 0 1 0 0 0 1
這只是零和一的方陣,和上面的數字11是矩陣的尺寸。我閱讀使用下面的代碼片段文件:
void generateCNF(FILE* f, FILE* g){
int n;
fscanf(f,"%d",&n);
int i,j;
int A[n][n]; // A is where I store my matrix
for(i=1;i<=n;i+=1){
for(j=1;j<=n;j+=1){
fscanf(f,"%d",&A[i][j]);
printf("%d ",A[i][j]); // I print out A while reading into it
}
printf("\n");
}
//...
}
這是printf的生成輸出:
0 1 1 0 1 0 0 0 1 0 0
0 0 1 1 0 1 0 0 0 1 0
0 0 0 1 1 0 1 0 0 0 1
1 0 0 0 1 1 0 1 0 0 0
0 1 0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 1 1 0 1 0
0 0 0 1 0 0 0 1 1 0 1
1 0 0 0 1 0 0 0 1 1 0
0 1 0 0 0 1 0 0 0 1 1
1 0 1 0 0 0 1 0 44 0 1606415088
我不知道那些過去的條目如何去錯了。我試着用文本編輯器中的矩陣打開文件,它看起來非常好,所以我懷疑fscanf有什麼不妥(或者說,我使用它)。
如果需要幫助我,我可以添加完整的C文件(大約90行),但我不希望混亂不必要的帖子。
提示:總是檢查任何scanf函數的返回值。它會在某個時刻爲你節省很多頭痛。 – hyde
對不起,我改了標題。 「fscanf」按文件記錄。 –
@WeatherVane已批准。 –