홈>
파일을 읽을 수있는이 작은 함수에 문제가 있습니다 :
void ReadFile(char *name) {
FILE *fr;
int lenght, i;
fr = fopen(name, "r"); //Open the file reader
fseek(fr, 0, 2); //Set the pointer at the EOF
lenght = ftell(fr); //Read the ending position
printf("\nDEBUG lenght:%d\n", lenght);
fseek(fr, 0, 0); //Return at the beginning of the file
printf("File read:\n\n");
for (i = 1; i <= lenght; i++) {
printf("%c", getc(fr));
fseek(fr, i, 0);
}
fclose(fr);
}
이 파일은 다음과 같습니다.
qwerty
asdfgh
zxcvbn
그러나 이것은 프로그램의 출력입니다 :
DEBUG lenght:24
File read:
qwerty
asdfgh
zxcvbn
이전에는 기본적으로 여분의 "\ n"을 읽습니다.
코드가 작동하지 않는 이유에 대한 아이디어가 있습니까?
감사합니다
- 답변 # 1
- 답변 # 2
다음 제안 된 코드 :
<올>정확하게 컴파일
원하는 기능을 수행합니다
적절한 오류 확인
현재 제안 된 코드 :
for (i = 1; i <= lenght; i++) { printf("%c", getc(fr)); }
#include <stdio.h> // EOF, fopen(), getc(), putc() fclose() puts() perror() #include <stdlib.h> // exit(), EXIT_FAILURE // prototype void ReadFile(char *filename); void ReadFile(char *filename) { FILE *fp = fopen( filename, "r" ); if( !fp ) { perror( "fopen failed" ); exit( EXIT_FAILURE ); } // implied else, fopen successful puts("File read:\n"); int ch; while( (ch = getc( fp )) != EOF ) { putchar( ch ); } fclose(fp); }
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- JavaScript 변수를 HTML div에 '출력'하는 방법
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 문자열에서 특정 문자 제거
텍스트 모드에서 파일을 열면 (위와 같이)
와이즈 비즈 당신의 에서 -loop, 그러나fseek
에 대한 호출ftell
가 이전에 검색 한 오프셋 값만 포함 할 수 있습니다. 함수 (예 : cppreference/fseek) :for
의 값을 전달합니다i
에 의해 검색되지 않습니다. . 그 외에도 당신의ftell
루프에서fseek
로 superflous입니다 어쨌든 읽기 포인터를 앞으로 이동시킵니다. 그래서fgetc
작업을 수행해야합니다.