请看下面的代码段(一个实际问题的简化):
......
CListCtrol lc;
.....
int pos = lc.InsertItem(0, _T("123"));
TCHAR buffer[20];
_tprintf(buffer, "%d", 1);
lc.SetItemText(pos, 1, buffer);//.....
......
这样的话,第一行第二列显示的不是正确的字符‘1’,而是20个乱码。请教高手这是怎么回事,怎么解决。
......
CListCtrol lc;
.....
int pos = lc.InsertItem(0, _T("123"));
TCHAR buffer[20];
_tprintf(buffer, "%d", 1);
lc.SetItemText(pos, 1, buffer);//.....
......
这样的话,第一行第二列显示的不是正确的字符‘1’,而是20个乱码。请教高手这是怎么回事,怎么解决。
_tprintf是切换printf/wprintf
P.S.没有_tsprintf宏
ZeroMemory(buffer, 20);
_tprintf(buffer, "%d", 1);
CListCtrol lc;
.....
int pos = lc.InsertItem(0, _T("123"));
CString buffer; //如果用TCHAR buffer[20]; _tprintf(buffer, "%d", 1);则腰保证有效字符之后有个“\0”
buffer.Format("%d",1);
lc.SetItemText(pos, 1, buffer);//.....
......