被坑的夠嗆,做個(gè)記號(hào)
方法:1、2系轉(zhuǎn)載
方法3系原創(chuàng)
如果你的數(shù)據(jù)不會(huì)大于0x7fff ffff,可以直接用StrToInt,安全點(diǎn)的方法是StrToIntDef
// 超出了int的最大表達(dá)范圍,禁止用int中轉(zhuǎn)
std::string str("2147483649");
DWORD num = atoi(str.c_str()); // way - 1,安全性不好
std::stringstream sstr;
sstr<<str;
sstr>>num; // way - 2,安全性不好
sstr.clear();
方法3:
/*******************************************************************************
字符串轉(zhuǎn)成DWORD,模仿StrToIntDef()其中defalult = 0;
*******************************************************************************/
DWORD StrToDWORDDef(String sDigStr, DWORD dwDef = 0)
{
return (DWORD) StrToInt64Def(sDigStr, dwDef); //安全性好,浪費(fèi)幾個(gè)始終周期和4字節(jié)內(nèi)存
}
posted on 2008-01-10 21:10
創(chuàng)建更好的解決方案 閱讀(4252)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
C++專(zhuān)欄