2009-01-01 125 views

回答

10

CStringprintf風格的格式提供了Format方法,但這不是類型安全的。

對於類型安全的字符串格式化,你既可以使用std::stringstream/std::wstringstreamBoost Format圖書館,雖然這些都與C++ std::basic_string類模板的工作,而不是MFC CString類。我已經在VC6中成功地使用了這兩個。

Boost格式很好,因爲它允許你使用類似printf的語法,並且如果你提供的參數與格式字符串不匹配,它將拋出一個異常,而用C++ iostreams進行字符串格式化會讓你的代碼變得非常冗長。

注意,您可以從std::string創建CString對象如下:

std::string s; 
CString str(s.c_str()); 

我希望這有助於!

+0

我可以使用用VC6 – yesraaj 2009-01-01 13:48:28

1

退房FastFormat。對於CString,它有一個簡單的語法和一個「接收器」 - 接收格式化操作結果的FastFormat術語。

東西線沿線的:

int i = 1; 
std::string ss = "a std string"; 
CString cs = "a Cstring"; 

CString result; 

fastformat::fmt(result, "i={0}, ss={1}, cs={2}", i, ss, cs);