博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
格式化输出%s和%S的区别
阅读量:7058 次
发布时间:2019-06-28

本文共 476 字,大约阅读时间需要 1 分钟。

使用s时,printf是针对单字节字符的字符串,而wprintf是针对宽字符的

使用S时,正好相反,printf针对宽字符

CString中的format与printf类似,在unicode字符集的工程中,使用

CString str1, str2;

str1.format(_T("%S"), str2);时%S专指单字节字符的字符串,而str2为宽字符,类型不匹配,故出现不可预期的错误。

若str2为英文字符,如“abcd”,就只能输出a,因str2为宽字符,a有两个字节,值为0x0061,在内存中为61 00,故按单字节输出只能输出61,碰到00,即空字符后认为字符串结束,不会再输出。

若str2为中文字符,中文字符一般会占满两字节,而按单字节字符就会按一个字节一个字节的输出,故会输出乱码。

example:String Detail = SERVER_HOST + "detail?packageName=%s";

        String url = String.format(Api.Detail, packageName);

转载地址:http://hmrol.baihongyu.com/

你可能感兴趣的文章
Ehcache学习笔记(二) 根据条件筛选缓存中的数据
查看>>
逻辑数据库设计 - 乱穿马路(多对多关系)
查看>>
Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型
查看>>
PostgreSQL 的 pl/pgsql 的 cannot begin/end transactions in PL/pgSQL错误
查看>>
多线程编程之三——线程间通讯
查看>>
vs快捷键
查看>>
Oracle DBA常用查询
查看>>
修复Telerik reporting 在网页中使用时的样式
查看>>
Hackers’ Crackdown-----UVA11825-----DP+状态压缩
查看>>
Waiting Processed Cancelable ShowDialog
查看>>
[leetcode]Spiral Matrix
查看>>
hdu 1232 畅通工程(并查集)
查看>>
在github上写个人简历——先弄个主页
查看>>
用jquery实现遮罩层
查看>>
POJ 2229 Sumsets(技巧题, 背包变形)
查看>>
啥时候js单元测试变的重要起来?
查看>>
使用strtotime和mktime时参数为0时返回1999-11-30的时间戳问题
查看>>
php mysql 扩展安装
查看>>
Thrift架构~目录
查看>>
c++ 调用matlab程序
查看>>