C++: wsprintf和sprintf 的区别

我在看视频《C语言也能干大事》的时候,老师说写WINDOWS程序的时候最好都用wsprintf而不用sprintf,但是我编了一个算面积的程序,在把获得的结果用变成字符串的时候,只能用sprintf,若是用了wsprintf,最终在屏幕上看见的结果只会是一个f,请问这是什么缘由?
与这个相关的代码以下web

TCHAR number[256];
GetDlgItemText(hwnd,IDC_EDIT1,number,sizeof(number));
double radius=atof(number);
TCHAR area[256];
double result=radius*radius*3.1415926;
sprintf(area,"%lf",result);
SetDlgItemText(hwnd,IDC_EDIT2,area);

wsprintf 是和 wchar_t配合的。
sprintf 是和 char 配合的。app

老师说写WINDOWS程序的时候最好都用wsprintf而不用sprintf;
老师的意思是你的工程是unicode编码的。svg

而你可能用的VC6.默认多字节编码。
固然能够设置编码。函数

LS的仍是认真看看MSDN吧
wsprintf(wsprintfA)是API,sprintf是c函数,都是ansi,
对应的unicode分别是wsprintfW和swprintf编码

wsprintf 有1024字符限制,并且不支持浮点数。
因此结果不对。spa