2013-12-19 22 views
0

我完全失去了,並沒有線索如何從一個文件中獲得整數輸入到一個數組中。如果文件看起來像:如何用文件中的整數填充數組?

1 2 3 
4 5 6 
7 8 9 

,我想一個數組a[9] = {1,2,3,4,5,6,7,8,9}然後我怎麼連去這樣做?

會有什麼沿着這項工作的線?

int a[9]; 
int i; 

infile = fopen("test.txt","r"); 
while(fscanf(infile, "%d", *(a+i) != EOF) 
{ 
    fscanf(infile, "%d", *(a+i)) 
    i++ 
} 

實際上,我想該陣列是一些任意大量明知文件不會包括超過這個金額,即1000

+3

Hvae你嘗試過了,如果是的話是什麼問題? –

+0

@Bourezg - 也許(看到最後幾個問題),去掌握調試器可能是明智的 –

+0

接受前面提到的問題的一些答案是很好的。 –

回答

2

爲什麼不

for (int i = 0; fscanf(infile, "%d", &a[i]) == 1; ++i); 
+0

是的,'== 1'比較好。不需要額外的狀態變量。 –

1

你爲什麼要加入這一行兩次?

fscanf(infile, "%d", *(a+i)); 

曾經作爲一個條件,一旦在循環體?這是多餘的。這將工作:

int i = 0; 
while(fscanf(infile, "%d", *(a + i) != EOF) 
{ 
    i++; 
} 

或者更好的是,以使其更加堅固:

int i = 0, ret; 
while((ret = fscanf(infile, "%d", *(a + i++)) != EOF) && (ret == 1)) 
    continue; 
+1

可以使用'for'循環 –

+0

@EdHeal這也可以。 –