제목 자체가 말하는 것 같습니다.C에서 다른 줄 끝을 올바르게 인식하는 방법?
저는 Windows 7에서 g ++ 및 메모장 ++를 사용하여 파일 내용을 비교하는 C 프로그램을 코딩하고 있습니다. 파일의
내용 :
simple
file with lines
파일은 윈도우 스타일 CRLF 라인 엔딩을 가지고있다. 이 코드를 사용하여 파일의 길이를 계산하면
는 :
fseek(file, 0, SEEK_END);
size = ftell(file);
fseek(file, 0, SEEK_SET);
을 나는 23를 얻을.
줄 끝을 Unix 형식 LF (Notepad ++ 사용)로 변경하면 길이가됩니다.
이렇게하면 두 파일을 비교할 때 문제가 발생합니다. 그래서 주어진 파일에 LF 또는 CR 또는 CRLF가 있는지 확인하는 방법이 있는지 묻습니다.
CR과 LF를 구별 할 수 있다는 것을 알고 있습니다. LF에는 ASCII 코드 10이, CR에는 ASCII 코드 13이 있습니다. 또는 LF는 '\ n'이고 CR은 '\ r'입니다.
하지만 char 뒤에 file char을 읽을 때 CRLF가 있더라도 항상 LF (ascii 10)를 얻습니다.
나는 분명히했으면 좋겠다. 감사.
그러면 파일을 읽고 'ftell'을 사용하지 않고 문자를 계산합니다. 'ftell'은 파일의 바이트 수를 반환합니다. 이것은 단순히 당신이 원하지 않는 것입니다. * 문자 수를 원합니다. – Bakuriu