2013-03-20 4 views
0

내 코드이므로 세그먼트 오류가 계속 발생합니다. 파일에서 숫자 세트를 읽으려면이 코드를 어떻게 포맷해야합니까?텍스트 파일에서 여러 개의 번호를 읽는 방법

입력 내용이 82, 46, 71, 56, 44, 12, 100, 62, 67, 64, 65, 62, 39, 68 68, 90, 78, 57, 76, 45, 그런 다음 입력 더 많은 숫자를 가지고 당신이 공간을 가지고있는 것처럼

while(store < sizeof(line)/sizeof(int) && fscanf(input, "%d", &read) != EOF) 

보이는 :

#include <stdio.h> 

int main() 
{ 
    FILE *input = fopen("input.txt", "r"); 

    int line[7]; 
    int store = 0, read; 

    if(!input) 
    { 
     printf("Error: Filename \"input.txt\" not found!\n"); 
    } 

    store = 0; 
    while(fscanf(input, "%d", &read) != EOF) 
    {    
     line[store] = read;     
     store++; 
    } 

    printf("%d %d %d %d %d %d %d\n", line[0], line[1], line[2], line[3], line[4], line[5], line[6]); 
    return(0); 
} 
+1

파일 형식은 무엇입니까? 루프에서'store <7'을 체크하고,'input'이'NULL'이라면, 에러 메시지를 인쇄 할뿐만 아니라'exit (1)'을 출력하십시오. 'fscanf'가 입력 에러없이 int를 읽지 못하면 반환 값은 0이 될 것이므로'fscanf (...) == 1 '을 확인하십시오. –

+0

for 루프에 줄 바꿈을 방지하는 가드가없는 것 같습니다. 파일에 숫자가 7 개 이상인 경우 어떻게해야합니까? – dotcomslashnet

+0

감사합니다. 내 입력 내용은 다음과 같습니다. 82, 46, 71, 56, 44, 12, 100 62,67,64,65,62,39,68 68, 90, 78, 57, 76, 45, 82 내 사례에 도움이됩니까? (아시다시피, 다음 줄을 어떻게 읽어야합니까?) –

답변

0
은으로 while 루프 조건을 변경

.

+0

이렇게하면 내 줄 []이 범람하지 않게됩니까? –

+0

예, sizeof thing은 배열의 크기를 알려줍니다. – perreal

관련 문제