2016-11-22 151 views
0

我是c編程的新手,我遇到了一個程序問題。我應該從文件中讀取三個數組。我正在使用的文件是Temps.txt,下面是文件中的內容。從文件中讀取兩個數組

1   31   37 
2   26   24 
3   30   38 
4   33   25 

5   33   21 
6   29   28 
7   41   46 

此去一路下跌,直到左欄爲31。我寫的代碼是

#include<stdio.h> 
#include <math.h> 
#include <stdlib.h> 

int main() 
{ 
    FILE *readfile; 
    int New_York[31]; 
    int Anchorage[31]; 
    int Dates[31]; 
    int i; 
    printf("Date New York Anchorage\n"); 
    if((readfile = fopen("Temps.txt", "r")) == NULL) 
    { 
     printf("The file Temps failed to open\n"); 
    } 
    else 
    { 
     for(i = 0; i < 31; i++) 
     { 
      fscanf(readfile, "%d, %d, %d", Dates + i, New_York + i, Anchorage + i); 
      printf("%d  %d  %d\n", *(Dates + i), *(New_York + i), *(Anchorage + i)); 
     } 
     if(fclose(readfile) == EOF) //close the file. 
     { 
      printf("The file failed to close.\n"); 
     } 
    } 

    return(0); 
} 

當我編譯它,它運行和所有正在讀取打印數據的日期數組,在另外兩個數組中,我獲得了非常大的負數和正數。如果你可以請幫助,我會很感激。

謝謝

+3

你'fscanf'格式字符串包含逗號。是那些在文件中,還是文件空間分隔(如您的示例數據所示)? – Mac

+0

對於空格分隔的數字,最好在'scanf'格式字符串中使用不分隔符:'「%d%d%d」'。 – Gene

回答

4

擺脫逗號:"%d, %d, %d"

fscanf(readfile, "%d %d %d", Dates + i, New_York + i, Anchorage + i); 
+0

它工作。非常感謝您的幫助和快速回復。 – VictorS