C++: wsprintf和sprintf 的区别

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

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 配合的。

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

而你可能用的VC6.默认多字节编码。
当然可以设置编码。

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

wsprintf 有1024字符限制,而且不支持浮点数。
所以结果不对。

发布了768 篇原创文章 · 获赞 261 · 访问量 89万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览