MFC基础篇

MFC基础篇

在MFC中经常用到CString类型。也会将其打印到黑窗口上。但是直接用printf或者直接用cout都是不行的。

比如要截取字符串:“bsd_Progress\t0\t1\t2\t3\t4\t0XFF0000\tNil”之“\t”之间的字符串,当然结果为“0”,“1”,“2”,“3”,“4”,“0XFF0000”和"Nil"。可是直接用printf输出时候,代码和运行结果如下,并不尽如人意。

int _tmain(int argc, _TCHAR* argv[], TCHAR* envp[])

{

CString sBuf=_T("bsd_Progress\t0\t1\t2\t3\t4\t0XFF0000\tNil ");

CString Seperator = _T("\t");

int Position = 0;

CString Token;

Token = sBuf.Tokenize(Seperator, Position);

while(!Token.IsEmpty())

{

// Get next token.

Token = sBuf.Tokenize(Seperator, Position);//从iStart位置取出字符串中含pszTokens分割符间的内容;

printf("%s\n",Token);

}

system("pause");

return 0;

}

然后,去网上查了一下,原来CString不能用printf,需要用cout。那就试试,

int _tmain(int argc, _TCHAR* argv[], TCHAR* envp[])

{

CString sBuf=_T("bsd_Progress\t0\t1\t2\t3\t4\t0XFF0000\tNil ");

CString Seperator = _T("\t");

int Position = 0;

CString Token;

Token = sBuf.Tokenize(Seperator, Position);

while(!Token.IsEmpty())

{

// Get next token.

Token = sBuf.Tokenize(Seperator, Position);//从iStart位置取出字符串中含pszTokens分割符间的内容;

std::wcout<

}

system("pause");

return 0;

}

但结果却是一堆乱码:

后来发现,需要将CString转换成TCHAR*类型,才能够输出正确。

1 int _tmain(int argc, _TCHAR* argv[], TCHAR* envp[])

2 {

3 CString sBuf=_T("bsd_Progress\t0\t1\t2\t3\t4\t0XFF0000\tNil ");

4 CString Seperator = _T("\t");

5 int Position = 0;

6 CString Token;

7

8 Token = sBuf.Tokenize(Seperator, Position);

9 while(!Token.IsEmpty())

10 {

11 // Get next token.

12 Token = sBuf.Tokenize(Seperator, Position);//从iStart位置取出字符串中含pszTokens分割符间的内容;

13

14 TCHAR* szTrunc = new TCHAR[Token.GetLength() + 1];//将结果保存在堆里

15 _tcscpy(szTrunc,Token);//结果拷贝

16

17 std::wcout<

18

19 if (_tcslen(szTrunc) > 0)

20 {

21 delete [] szTrunc;

22 }

24 }

25 system("pause");

26 return 0;

27 }

O(∩_∩)O哈哈~ok

相关推荐

AE2 P2P通道 简介~
s365 2.2.3

AE2 P2P通道 简介~

📅 02-07 👁️ 2871
分析研究微星对比神舟哪个好些?区别有吗?真相揭秘实情
365账号限制投注怎么办

分析研究微星对比神舟哪个好些?区别有吗?真相揭秘实情

📅 08-26 👁️ 194
男士休闲鞋推荐:四大品牌热销款,舒适耐穿,超值选择!
大话西游2女仙克什么好
365账号限制投注怎么办

大话西游2女仙克什么好

📅 11-01 👁️ 3177
文成公主:大家只知她入藏和亲,功劳巨大,可她的结局你知道吗?
《穿越火线》毁灭大炮为何依然稳居人气榜第二名?
365彩票数据最专业

《穿越火线》毁灭大炮为何依然稳居人气榜第二名?

📅 07-17 👁️ 1134
节奏大爆炸,音乐与游戏的激情碰撞—全方位下载指南与体验剖析
王者荣耀封号机制详解:为何被封号及如何有效避免?
365彩票数据最专业

王者荣耀封号机制详解:为何被封号及如何有效避免?

📅 07-23 👁️ 8165
如何进行合理的团队分工
365彩票数据最专业

如何进行合理的团队分工

📅 08-07 👁️ 5181