2009년 10월 12일 월요일

[VC] sprintf()

void CSerialDlg::OnButtonTest()
{
 // TODO: Add your control notification handler code here
 CString str;
 char xxx[256];
 unsigned char Data[20];

 
memset(xxx, 0x00, sizeof(xxx));
 
memset(Data, 0x00, sizeof(Data));
 memcpy(Data, "\x83\xF1\x11\xC1\xEF\x8F\xC4", 7);
 
 m_ComuPort.WriteComm(Data, 7);

 for
(int i = 0; i < 7; i++)
 {
  sprintf(xxx, "%02X ", Data[i]);
  str += xxx;
 }

 m_strTX += str + "\r\n";

 
UpdateData(FALSE);
}


Data 배열에는
Data[0] = 0x83
Data[1] = 0xF1
Data[2] = 0x11
.
.
.
이런식으로 값이 들어가게 된다.

내가 원하는 건 Edit box에 83 F1 11 ... 이런 식으로 넣는것.

m_strTX = Data로 하면 CString 그러니까 아스키 값으로 들어가서 곤란해 하고 있었는데 그러다 sprintf를 발견했다.


sprintf(xxx, "%02X ", Data[i]); 이렇게 해결할 수 있었다.

sprintf -> Write formatted data to a string. 라고 msdn에 나와있었음.
sprintf가 있다는 사실은 알아도 막상 쓸려고 하면 왜 생각이 안나는지.

으흐흐흐흑 ㅠ.ㅠ


자세한 설명은 링크 참조 ^^;
http://msdn.microsoft.com/en-us/library/ybk95axf(VS.71).aspx

댓글 없음:

댓글 쓰기