MFC中一些类型的Format格式

很多时候一些格式需要以日志的形式打印出来,就需要转成CString. 那么就需要用到Format

1. DWORD

DWORD a2=276321234;
	CString str2;
	str2.Format(_T("%u"),a2);

 

2. char[ ]

   如果工程时Unicode编码,有三种方法:

char *pChar = "liuxijiao计算机网络";  
	char bb[]=("你好");
	USES_CONVERSION;  
	CString stre = A2T(bb);  //方法一
    CString strd = A2W(pChar); //方法二 

//方法三:
char pszFileName[NAME_LEN];
wchar_t Temp[NAME_LEN];
MultiByteToWideChar(CP_ACP, 0, pszFileName, strlen(pszFileName) + 1, Temp,sizeof(Temp));

3. TCHAR

TCHAR a[]=_T("this is a test");
	CString str;
	str.Format(_T("%s"), a);

4. char*

//方法一
char *pChar = "liuxijiao计算机网络";
	USES_CONVERSION;
	CString str = A2T(pChar);
//方法二
char *pChar = "liuxijiao计算机网络";
	USES_CONVERSION;
	CString str = A2W(pChar);

5. %x(十六进制数)

使用printf(“%x”,…);可以输出指定参数的16进制形式,但是在实际的使用中,参数不一定都是32位的整数,有可能是16位的short,8位的char。这个时候不小心就会输出错误的结果。正确写法应该带上每个参数的类型:

CString strGUID;
	strGUID.Format(_T("%01x%01x%02x%02x%02x%04x%04x%04x%04x%04x%08x"),
		(char)ullVersion, (char)nViewNum, (short)nScanMode, (short)nBitCount, (short)nDeinterlaceType, (int)ullEditWidth, (int)ullEditHeight,
		(int)ullFrameRate, (int)width_ratio, (int)height_ratio, (ULONGLONG)lsum);
	strGUID.MakeUpper();

6. %llx(64位数格式化为十六进制数)

7. 其他

        %c                 单个字符

  %d                 十进制整数(int)

  %ld                十进制整数(long)

  %f                 十进制浮点数(float)

  %lf                十进制浮点数(double)

  %o                 八进制数

  %s                 字符串

  %u                 无符号十进制数

  %x                 十六进制数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值