[c++ 파일 입출력] 문자열 사이에 공백부분에 ^@ 가 출력이 됩니다.
글쓴이: chobozzang / 작성시간: 화, 2013/07/23 - 9:43오전
안녕하세요. 한 텍스트파일을 읽어서 새로운 텍스트파일을 만들고 있는데요. 새로운 파일을 출력하면 공백부분에 null 문자가 출력됩니다.(전체는 아니고 몇개의 공백에) 스샷 첨부합니다. asd.jpg가 읽은 파일이고 what.jpg가 출력 결과입니다.
저 라인들은 모두 파싱해서 string 변수에 담아서 ofstream 을 이용해 출력해 주었구요. stdout 으로 파일에 쓰기 전에 출력해보면 정상 출력됩니다. 그런데 파일에 쓰게되면 저런 이상한 문자가 나오고 hex 값으로 비교해 본 결과 읽은 파일에서는 공백문자가 20 으로 찍히는데 쓴 파일에서는 공백문자가 00으로 찍힙니다. 그런데 황당한건 전체 공백이 아니라 앞쪽 한 7개 정도의 공백에서만 그런 현상이 벌어집니다. 무슨 문제일까요? file type 을 비교해 본 결과 읽기전 파일은 text/plain; charset=iso-8859-1 이고 써진 파일의 경우 application/octet-stream 이런 타입이 써지는데요... 혹시 이게 문제가 되는 걸까요? 초보자에게 답변 좀 부탁드리겠습니다 ㅠㅠ
Forums:
댓글 달기