인프런 커뮤니티 질문&답변

포닥님의 프로필 이미지
포닥

작성한 질문수

C 프로그래밍 - 입문부터 게임 개발까지

파일 쓰기 fputs

dec c++ 프로그램 이용 중

작성

·

211

0

dev c++ 프로그램을 이용 중에 있는데 줄바꿈문자(\n) 를 이용해서 'text1.txt' 파일에 접근해보면 줄바꿈 문자 대신에 이상한 문자가 들어가있습니다. Visual Studio와 컴파일러에 차이가 있어서 다르게 출력되는 건가요?

답변 2

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요 나도코딩입니다.

굉장히 좋은 질문이자 지적입니다.

결론부터 말씀드리면 개행(줄바꿈, ₩n)의 처리 방식이 달라져서 그렇습니다. 캐리지 리턴 (CR) 과 라인피드 (LF) 라는 용어가 있는데, 쉽게 말하면 "맨 앞으로 이동하는 것" 과 "줄만 바꾸는 것" 으로 이해하시면 됩니다.

wt 와 wb, 즉 text 와 binary 형식일 때에 줄바꿈 처리하는 방식이 조금 다릅니다. 

유닉스라는 OS 에서는 줄바꿈을 LF 로만 처리하고, 윈도우에서는 CR / LF 로 처리합니다. wb 로 했을 때는 줄바꿈이 LF 로만 처리가 되어서 윈도우 메모장에서 볼때는 이상한 문자가 들어간 것으로 보이게 되구요, 다만 제가 강의에서 사용했던 편집기 프로그램은 그 경우라도 줄바꿈을 처리해주도록 되어 있어서 정상적으로 줄바꿈이 되어 보였던 것입니다.

그래서, 질문자님 말씀대로 이 예제에서는 wt 를 통해 줄바꿈 처리를 하는 방식이 적합합니다.

아, 참고로 w 는 wt 와 동일하답니다.

아래 링크에 보다 자세한 설명이 있으니 방문해보세요 ^^

https://m.blog.naver.com/PostView.nhn?blogId=winkey83&logNo=55235887&proxyReferer=https%3A%2F%2Fwww.google.com%2F

감사합니다.

0

포닥님의 프로필 이미지
포닥
질문자

해결을 시도해봤고, 영상 속 14번째 열에 (fopen 함수 있는 열) wb 대신 w를 넣고 작성하니 문제가 해결되었습니다. 이유가 뭔지 알고싶습니다!!

도움 정말 많이 받고 있습니다 !! 감사합니다 :)

포닥님의 프로필 이미지
포닥

작성한 질문수

질문하기