2013-12-19 3 views
0

필자는 완전히 잃어 버렸고 파일에서 정수를 배열로 입력하는 방법을 알지 못했습니다. 파일이 보이는 경우 :FILE의 정수로 배열을 채우는 방법?

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 그게 효과가 있습니다. –

관련 문제