• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

dec c++ 프로그램 이용 중

19.08.07 22:37 작성 조회수 128

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

포닥님의 프로필

포닥

질문자

2019.08.07

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

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