2012-09-13 32 views
0
讀取文件

我data.txt中內容是:的fscanf用c

1 2 3 4 5 6 
1 2 3 4 5 6 
4 5 6 7 8 2 

予讀取文件,並將該值存儲到一個二維int數組

int record[line_number][6]; 
    int record2[line_number][8]; 
    int test; 

    for(i = 0; i <line_number; i++) 
    { 
    for(j = 0; j <6; j++) 
    { 
     fscanf(fptr, "%d", &record[i][j]); 
    } 
    } 
    int a=0; 
    int b=0; 
    for(a=0; a<i; a++) { 
    for(b=0; b<6; b++) { 
     printf("%d,", record[a][b]); 
    } 
    printf("\n"); 
    } 

等的存儲器地址輸出,我的代碼有什麼問題?謝謝!

+0

你檢查fopen()是否成功嗎?它的確如此,如果文件看起來像你所建議的那樣,文件內容應該能正確打印。 – puffadder

回答

6

您不檢查fscanf()的返回值,因此您不知道它確實能夠成功進行所有轉換。如果失敗,record[][]中的值將被初始化,打印出來會打印內存中發生的任何事情。

+0

我犯了一個非常愚蠢的錯誤。我在fscanf之前使用了fgetc方法,所以我應該將fptr設置爲文件頭。非常感謝! – lighter