|
?만 써지는 이유는 Write(&b, sizeof(b)); 에서
b는 char형 포인터변수고 "ABCC"라는 문자열의 시작 포인터가 저장되어 있는 데이터인데
저장은 b라는 포인터 변수의 값이 아닌 주소를 4바이트 만큼 저장하기 때문이죠
(포인터 변수가 4바이트의 크기임으로... 32비트 프로그램에서 4바이트가 맞을 거에요...)
목표하시는 결과는 Write(b, strlen(b) * sizeof(char)); 라고 하셔야 합니다.
붕붕이 님이 쓰신 글 :
: String str="";
: str="ABCC";
: char *b;
: b=str.c_str();
:
: TFileStream *a= new TFileStream("파일경로 명",fmOpenWrite);
: a->Write(&b,sizeof(b));
: delete a;
:
: 이렇게 해서 한번 연습장에 ABCC가 써지나 봤는데 연습장엔 항상 ? <<이렇게 써져있더라구요
: 왜그런지 이유와 TStream클레스에 대해 간략한 정의좀 부탁드립니다 ㅠ 참고 서적도 알려주시면 감사합니다.!
|