格式化输出中的%s和%S的陷阱
2015-04-24 18:07
211 查看
CStringA csa;
CStringA csc;
CString csb(L"131231111111");
csa.Format("%s", csb); // 只会输出1
csc.Format("%S", csb); // 会输出131231111111
printf("%s\n", csa.GetBuffer(0));
printf("%s\n", csc.GetBuffer(0));
本意想输出131231111111,可是"%s"只会输出1,因为%s是按照ascill编码,而csb是unicode编码,unicode编码格式是一个"1"后会跟一个0x00,所以对于ascill来说,就认为字符串终止了.
CStringA csc;
CString csb(L"131231111111");
csa.Format("%s", csb); // 只会输出1
csc.Format("%S", csb); // 会输出131231111111
printf("%s\n", csa.GetBuffer(0));
printf("%s\n", csc.GetBuffer(0));
本意想输出131231111111,可是"%s"只会输出1,因为%s是按照ascill编码,而csb是unicode编码,unicode编码格式是一个"1"后会跟一个0x00,所以对于ascill来说,就认为字符串终止了.
相关文章推荐
- 格式化输出中的%s和%S的陷阱
- Python格式化输出%s和%d
- 格式化输出中的%s和%S的区别
- Python格式化输出%s和%d
- Python格式化输出%s和%d
- 格式化输出%s和%S的区别
- 关于printf系列格式化输出函数,%S格式的分析
- Python格式化输出%s和%d
- %s格式化输出
- Python 格式化输出 —— %r 与 %s 的区别(__repr__ 与 __str__)
- printf 十六进制格式化输出 2字节补0对齐 ,
- Java SE 学习---格式化输出
- JDK5新特性:格式化输出
- 详述 Java 语言中的格式化输出
- C++格式化输入输出
- printf()格式化输出详解
- js统计网站访问,会员圈选,find 定位时间段内文件,grep过滤内容,gawk 排除,去重,格式化输出
- Python学习入门基础教程(learning Python)--1.2.2 Python格式化输出基础 .
- python-格式化输出
- php用date格式化输出指定范围的时间