|
설마요..
디버깅 화면의 Watch List 등에서 BreakPoint 걸고 확인할 때의 값을 말씀하시는것 같은데요.
실제로 메모장이나 콘솔로 출력해보시면 역슬레쉬 하나만 출력되는 것을 확인할 수 있습니다.
메모리 상에 \\는 케릭터 \를 뜻합니다. 즉 "를 출력하기 위해서는 \" 이렇게 하는 것과 같습니다.
Watch List에서 \\ 이렇게 보인다고 해서 2 Byte를 차지하는 두 문자가 아니라 1Byte HEX 0x5C(92)의 아스키코드 '\'를 뜻하는 겁니다.
쿼드콥터헬기 님이 쓰신 글 :
: 역슬레쉬 2번도 해줬는데 예로 들어서 \\x00Y로 출력이 되버립니다.
: 그래서 혹시 몰라서 strASC1배열 0번째를 초기화 시켜주면 그 뒤에 있는 역슬레시도 같이 사라지면서 x00Y로 출력이 되더라고요 ㅠㅠ
:
:
: 정성훈.해미 님이 쓰신 글 :
: : 역슬레시 출력은
: : 역슬레시를 2번 써주면 됩니다.
: :
: : sprintf(strASC1, "\\x%sY", formatk);
: :
: :
: :
: : 쿼드콥터헬기 님이 쓰신 글 :
: : : 현재 아스키 20번까지 돌려서 sprintf로 16진수로 출력하고 그 뒤에 Y나 S,N으로 붙여서 나오게 하고 싶은데
: : : 0x01Y출력은 되는데 \x01Y로는 못나오나요? (0x01Y로 출력하면 sLst에 있는 \x01Y를 인식 못하더라고요)
: : :
: : : for(int k=0; k<21; k++)
: : : {
: : : formatk = FormatFloat("00", k);
: : :
: : : sprintf(strASC1, "\x%sY",formatk);
: : :
: : : if(strstr(sLst->Strings[i].c_str(), strASC1)!=NULL)
: : : {
: : : sLst->Strings[i] = StringReplace(sLst->Strings[i],strASC1,"",TReplaceFlags() << rfReplaceAll);
: : : }
: : :
: : : sCols->CommaText = sLst->Strings[i];
: : : ....
: : :
: : : 샘플로 만들어본건데 제가 어떤파일을 읽어오는데 간혼 아스키코드가 끼어서 StringGrid에 한칸씩 밀려서 출력되는 경우가 있어서요.
: : : 아직 한참 초보라서 많은 조언 부탁드립니다. (_ _)
: : :
|