CString.Format的使用方法

周威
2023-12-01

在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的intfloatdouble这些数字类型转换为CString字符串只需一行代码就可以实现。

先看看Format用于转换的格式字符:

%c单个字符
%d十进制整数(int)
%ld十进制整数(long)
%u无符号十进制数
%f十进制浮点数(float)
%lf十进制浮点数(double)
%o八进制数
%x十六进制数
%s字符串

1、int转换为CString:

int number=15;
CString str;

// str = "15"
str.Format("%d",number);

// str = " 15"(前面有两个空格;4表示将占用4位,如果数字超过4位,将输出所有数字,不会截断)
str.Format("%4d",number);

//str = "0015"(.4表示将占用4位,如果数字超过4位,将输出所有数字,不会截断)
str.Format("%.4d",number);

long转换为CString的方法与上面相似,只需要把%d改为%ld就可以了。

2、double转换为CString:

double num=1.46;
CString str;

// str = "1.46"
str.Format("%lf",num);

// str = "1.5"(.1表示小数点后留1位,小数点后超过1位则四舍五入)
str.Format("%.1lf",num);

// str = "1.4600"
str.Format("%.4f",num);

//str = " 1.4600"(前面有一个空格 || 一个浮点型数据,共占7个字符,其中小数部分占4个字符)
str.Format("%7.4f",num);

float转换为CString的方法也同上面相似,将lf%改为f%就可以了。

3、将十进制数转换为八进制:

int num=255;
CString str;

//str = "377"
str.Format("%o",num);

//str="00000377"
str.Format("%.8o",num);
 类似资料: