2013-03-02 8 views

답변

1

은 우선 일부 괄호가 필요하거나 fgetcEOF의 결과 사이의 비교를 저장하겠습니다 :

while((holder=fgetc(fileA)) != EOF) 
    ^    ^
+0

입니다. 감사:-) – mahdimb

1

fgetcint 아닌 char 반환합니다. 이는 EOF이 char 값이 char의 값과 충돌하지 않도록 저장할 수있는 값보다 크기 때문입니다. 따라서 파일 끝을 지나쳐 임의의 데이터를 읽는 것일 수 있습니다.

홀더를 인쇄하여 int으로 변경하고 (char)holder을 사용하여 어레이에 저장하십시오.

0

나는 처음에 파일 크기를 알아 내고 파일 크기를 줄이거 나 한 번에 메모리를 할당하고 fread를 한 번 호출하여 전체 파일을 읽음으로써 다시 파일 크기를 감지하도록 조언합니다.

내 대답은 previous question

관련 문제