C++中总是出现各种格式相互转换,特此总结记录遇到的所有格式转换,以便查阅。
一: int、long、float、double等转为CString ,
如果出现异常,可能是字符串格式设置的问题,修改字符格式,或者写成:strFormat(_T("%d"),_int)
int _int = 1;
long _long = 2;
float _float = 3.0;
double _double 4.0;
CString str;
str.Format("int:%d long:%ld float:%f double: %lf",_int,_long,_float,_double);
str.Format("%4d",_int); //表示占4位, 结果为:0001
str.Format("%.4f",_float); //表示小数点后留4位, 结果为:3.0000
其他格式转CString:
%c 单个字符
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
还可以指定数据格式,显示宽度、小数尾数、左对齐等,Format("[flag][width][.prec][type]")
例如:CString str; int outnum = 8;
str.Format("%-6d",8); // flag: - width: 6 .prec: . type: d
- 左对齐 +右对齐 0 填充0,而不是空格
二:string与CString互换
参考:https://www.cnblogs.com/carekee/articles/2195723.html