텍스트 파일 "hello.txt"에 샘플 텍스트가 있습니다. 16 진수 편집기에서 파일을 열면 \ r \ n 개행 문자를 볼 수 있습니다. 그러나 getc()를 사용하여 C 프로그램에서 파일을 읽을 때 \ r이 사라지고 \ n 문자 만 보입니다.getc()는 carrige return ' r'문자를 반환하지 않습니다.
나는 온라인에서 stackoverflow를 검색하려고했지만 운이 없었습니다.
hello.txt
Sample
File
코드 :
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("hello.txt", "r");
int character = 0;
while((character = getc(fp)) != EOF)
{
printf("%.2X ", character);
}
return 0;
}
출력 : 16 진수 편집기에서 본
53 61 6D 70 6C 65 0A 46 69 6C 65
파일 :
53 61 6D 70 6C 65 0D 0A 46 69 6C 65
볼 수 있듯이 0D0A는 getc() 함수를 사용할 때만 0A로 출력됩니다.
getc()가 '\ r'문자를 사용하지 않는 이유는 무엇입니까? 주어진 파일에서 \ r \ n ~ \ n에 대한 변환없이 정확한 데이터를 반환하려면 어떻게해야합니까?
바이너리 모드'rb "로 열어서''\ r ''을 얻으십시오. –
감사합니다. 그것은 효과가있다! :) –