个人认为应该是_stprintf_s函数的问题,希望达人能指点一下,感激不尽!

部分代码如下
//////////////////////////////////////////////////////////
while(true)
{
.........................
if(end==true)
{
HFONT font=CreateFont(30,
0,
0,
0,
400,
FALSE,
FALSE,
0,
GB2312_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
_T("黑体")
);
SelectObject(HCO,font);
wchar_t buf[64];
const wchar_t n_buffer[64]={0};
for(int j=0;j<64;j++)
{
buf[j] = n_buffer[j];
}
_stprintf_s(buf,_T("%3d"),score);
BitBlt(HCO,0,0,480,480,b_DC,0,0,SRCCOPY);
SetTextColor(HCO,RGB(240,65,85));
SetBkColor(HCO,RGB(0,0,0));
TextOut(HCO,140,100,_T("此次输出结果为"),strlen("此次输出结果为"));
TextOut(HCO,260,100,buf,(int)wcslen(buf));
TextOut(HCO,330,100,_T("秒!"),strlen("秒!"));
TextOut(HCO,20,160,_T("(按回车键返回,按ESC键退出)"),strlen("(按回车键返回,按ESC键退出)"));
BitBlt(windowDC,0,0,480,480,HCO,0,0,SRCCOPY);
if (GetAsyncKeyState(VK_RETURN) < 0)
{
end=false;
goto ag; //重新开始循环
}
if (GetAsyncKeyState(VK_ESCAPE)<0)
goto ed; //结束程序
}
}
//////////////////////////////////////////////////////////////////

当显示“此次输出结果为 buf 秒!”时,如果在此画面停留一段时间,没有任何操作的话,显示结果就会变成“此次输出结果为 buf +一堆乱码”

GCT1015
浏览 154回答 2
2回答

慕妹3146593

用t函数可以:WriteLine(FILE *pFile, const TCHAR*szOut, const TCHAR *szFmt){TCHAR szTempBuf[4096];memset(szTempBuf, 0x00, sizeof(szTempBuf));_stprintf(szTempBuf, szOut, szFmt );fwrite(szTempBuf, strlen(szTempBuf), 1, pFile);}

小唯快跑啊

{ _stprintf(guid_string, TEXT(
打开App,查看更多内容
随时随地看视频慕课网APP