'고수준파일입출력'에 해당되는 글 1건

  1. 2009.04.02 이거 왜이래~! 6

이거 왜이래~!

이번에 데이터 파일을 좀 만들어 줘야할 일이 있었습니다..

망할 졸작이져 넵..

그 데이터파일이 utf16으로 작성된거네여 그래서 찾다가...

UTF16으로 파일입출력하는 방법을 도저히 찾을수가 없어서,

수동으로 직접조금 손봐주기로 했습니다

일단 처음에 UTF16문서는 FF FE 가 들어간다고 하네여

그래서 뭐 그거야 그냥 해줬구...

어라 근데 newline이 \r\n으로 해주네여?? 이문서는? (utf16이 원래 이럴지도? 잘은 모르겠지만)

암튼 그래서 저두 그대로 때라하기로 했습니다.

네 utf16이니깐 각 문자마다 2byte~~~ 알파벳도 2byte~~~ 한글도 2byte~~

그러니깐 아래처럼 NULL도 적절히 넣어주고~~~

fprintf(fp,"%c%c%c%c",0x0D,0x00,0x0B,0x00);
사용자 삽입 이미지

fprintf(fp,"%c%c%c%c",0x0D,0x00,0x0A,0x00);
사용자 삽입 이미지

윈도우가 좀 병신인듯...

난 그냥 원하는 값을 넣고 싶은데 ㅅㅂ..

윈도우내부에서 fprintf 류 함수들(고수준 입출력) 은 아마 \n 전에 자동으로 \r이 쳐들어가게 만들어 논거 같다

즉 \n 하면 \r\n으로 치환 ㄹ...

(리눅스에선 걍 \n 으로 대동단결!! 인데 윈도우에선 \n은 문서상 다음줄을 가르키고 \r은 커서를 내림)

이거야뭐...

저수준 파일 입출력 쓰라는거냐?? (이것도 과연될까?)

아놔....

내가 몇시간이나 한줄알아?? 앙??

swprintf같이 유니코드 함수들도 써보고 아무리 해도 안되길래 (파싱이 안되길래)

hexeditor열어서 확인해보니 저 ㅈㄹ,,

어 이거왜이래  하면서 volatile 라는 생전첨 보는 지시자도 써보고.. (컴파일 최적화 방지)

해도 소용이 없자

"그냥 함수가 원래 저 ㅈㄹ인가 ㅜ" 라는 결론에 .,,

이거할바에야 그냥 업라이징이나할걸.


















































원인은 이게 아냐.........!!!!!!!!!!!

fopen(filepath,"w+b");
swprintf(fp,"\r\n");



멍,,,,

리눅스에선 구분안하고 썻을뿐이고!!!

(아시다 시피 유닉스/리눅스는 바이너리,텍스트파일 구별을 안하죠)

나는 그냥 이거 생각도 안하고 같은줄 알았고!!

+b같은 옵션은 허공에 날렸고!!

난 시간만 날렸고 ㅜㅜㅜㅜㅜㅜ

우허허허허허허헝

prev 1 next