버퍼 (char *)로 읽어야하는 파일이 있지만 문제는 파일에 유효한 텍스트 사이에 "재미있는 문자"가 있다는 것입니다. 나는 다음과 같은 몇 가지 코드를 작성할 때유효한 텍스트 사이에 NUL 문자를 포함하여 파일의 모든 내용을 읽는 방법은 무엇입니까?
그래서 :
버퍼 = 헤더
:FILE *fp;
if((fp = fopen(".\\test.txt", "rt"))==NULL){
printf("Cannot open file2\n");
}
fseek(fp, 0, SEEK_END);
long int fsize = ftell(fp);
rewind(fp);
//char *buffer2 = malloc(fsize * sizeof(char));
buffer = malloc(fsize * sizeof(char));
fread(buffer, 1, fsize, fp);
buffer[fsize] = '\0';
fclose(fp);
printf("fsize = %i\n", fsize);
printf("Buffer = %s\n", buffer);
을 다음과 같이 그것은 단지 텍스트 파일의 첫 부분을 출력
그리고 분명히 첫 번째 NUL char에서 멈 춥니 다.
재미있는 문자를 포함하여 파일의 전체 버퍼를 읽을 수있는 방법이 있습니까?
또는 C에서 가능하지 않습니까?
FSIZE가 올바르게 읽어, 단지 FREAD는 전체 버퍼 ;-(
어떤 도움을 크게 ;-)
감사
린톤을 감상 할 수있다
UPDATE를 읽지 않습니다 : OK, 나는 바보가되고 ..... 파일에 버퍼를 쓰면 그 안에 모든 것이 들어 있습니다. 화면에 쓰는 경우에만 null로 끝나기 때문에 괜찮습니다.