1. 程式人生 > >關於CString的一點小收穫,CString在控制檯程式中輸出到螢幕

關於CString的一點小收穫,CString在控制檯程式中輸出到螢幕

CString是一個非常好用的類,這就不用多說了,但是由於只能在MFC中使用,使得他的使用變得非常有限。筆者通過上網研究和親自實踐發現在控制檯程式中也可以輕鬆使用CString。

首先,要在控制檯中使用CString必須要加入標頭檔案

#include <atlstr.h>


在VS2005以上使用沒有問題,在VC6中無法使用,需要加入MFC的一系列庫,看了看還是放棄了。

第二,關於CString在控制檯中輸出的問題確實讓我很頭大。

因為CString是一個類,按照網上很多人寫的部落格無法實現輸出,都是輸出的是地址,要不就是隻輸出了第一個字母的ASCII碼。

筆者由於想輸出一個檔案的絕對路徑,所以需要使用到CString,程式碼如下:

CString strPath;
GetCurrentDirectory(MAX_PATH, strPath.GetBuffer(MAX_PATH));


然後就絆倒在這裡了。明明可以通過單步除錯看到strPath的值就是無法輸出到螢幕,也許是我太菜了。

首先想到的是把CString轉化成char*或者是TCHAR*,但是這樣依然只能輸出第一個字元。

後來看CString的定義看到一個函式GetString(),於是就OK了

wout<<strPath.GetString()<<endl;


但是還是有點小毛病,strPath中有中文的時候,中文後面的就丟失了。