VS2010中CString Format 用法

VS2010中Format用法:我在项目中需要实现一个字符串的转化,代码如下:CStringmess;intx,y;x=640;y=480;mess.Format("当前... VS2010中 Format 用法:
我在项目中需要实现一个字符串的转化,代码如下:
CString mess; int x,y;
x = 640;
y = 480;
mess.Format("当前为:%d X %d",x,y);
这段代码是VC6.0中没有任何错误,但在VS2010中就有问题了,谁可以帮我解决下,谢谢,最好是在VS2010中编译没错误的才说,还请说下具体怎么做,thanks!
展开
 我来答
yueye706
推荐于2016-10-26 · 超过25用户采纳过TA的回答
知道答主
回答量:65
采纳率:100%
帮助的人:39.8万
展开全部
1 先看看Format用于转换的格式字符:
2
%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制
%s 字符串
%u 无符号十进制数
%x 十六进制数
3
int转换为CString:

CString str;
int number=15;
//str="15"
str.Format(_T("%d"),number);
//str=" 15"(前面有两个空格;4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%4d"),number);
//str="0015"(.4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%.4d"),number);
long转换为CString的方法与上面相似,只需要把%d改为%ld就可以了。
4
double转换为CString:
CString str;
double num=1.46;
//str="1.46"
str.Format(_T("%lf"),num);
//str="1.5"(.1表示小数点后留1位,小数点后超过1位则四舍五入)
str.Format(_T("%.1lf"),num);
//str="1.4600"
str.Format(_T("%.4f"),num);
//str=" 1.4600"(前面有1个空格)
str.Format(_T("%7.4f"),num);
float转换为CString的方法也同上面相似,将lf%改为f%就可以了。
5
将十进制数转换为八进制:
CString str;
int num=255;
//str="377"
str.Format(_T("%o"),num);
//str="00000377"
str.Format(_T("%.8o"),num);
启帆信息
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!... 点击进入详情页
本回答由启帆信息提供
匿名用户
推荐于2018-03-01
展开全部
这是你的设置默认使用了UNICODE的CString,其实是CStringW
CStringA mess; int x,y;
x = 640;
y = 480;
mess.Format("当前为:%d X %d",x,y);
这样就好了

或者
CString mess; int x,y;
x = 640;
y = 480;
mess.Format(_T("当前为:%d X %d"),x,y);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuhuaizhong
2013-05-19 · TA获得超过7276个赞
知道大有可为答主
回答量:3978
采纳率:63%
帮助的人:3591万
展开全部
试试 mess.Format(_T("当前为:%d X %d"),x,y);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式