파일 라인갯수 카운팅후 그 숫자를 다른 목적의 변수로 전달하는게 안됩니다.

freebsd626의 이미지

1:    int ch;
2:    int n_data=0;
3:    do {
4:        ch= fgetc(a);
5:        if( ch== '\n') n_data++;  // the # of lines of law data
6:    } while(ch !=EOF);
7:
8:    // */
9:    printf("Total number of lines %d\n",n_data);   //    <------------------------여기까지는 잘계산되어서 인풋데이터 파일 라인갯수를 잘 읽습니다. ex)n_data=1681
 
 
10:    for(i=0; i<n_data; i++) {fscanf(a,"%d %d %lf\n", &px[i], &py[i], &si[i]);
11:
12:    if( si_max < si[i]) {
13:       si_max=si[i];
14:       px_max=px[i], py_max=py[i];}
15:    }

그뒤에 함수는(10 열 부터) 간단한 Max값 계산 예인데......여기서부터 "n_data" 값을 1681이라는 숫자로 못받아들이고 계산이 수행되지않습니다..
이유가뭔지 한참 고민해도 안되네요....

"그런데 1~9 번라인을 날리고 그냥 int n_data=1681; 로 정의하면 계산이 잘됩니다."

뭐가 문제인가요??

palsuet의 이미지

9번째 줄과 10번째 줄 사이에

rewind(a);

또는
fseek(a, 0L, SEEK_SET);

이 있어야겠네요.

feel the gravity

freebsd626의 이미지

감사합니다....읽기 시작하는 위치도 일일히 재설정해야하는군요.