作者:吳祐賓
多數歐洲國家的數字浮點數,會使用逗號「,」作為小數點基點。
這陣子接獲客戶反應他們開發的軟體遇上 "Invalid floating point operation" 的錯誤
雖然最後並沒有採用程式解法來撫平此問題,只是這解決過程太有趣,一定要和你分享!
作者:吳祐賓
多數歐洲國家的數字浮點數,會使用逗號「,」作為小數點基點。
這陣子接獲客戶反應他們開發的軟體遇上 "Invalid floating point operation" 的錯誤
雖然最後並沒有採用程式解法來撫平此問題,只是這解決過程太有趣,一定要和你分享!
圖片來源 |
其實 Vector 就是 C++ 容器符號的表徵(【{】和【}】) 圖片來源 |
據說,未來是個沒有 Delete 的世界(大誤) 圖片來源 |
//--------------------------------------------------------------------------- #include <iostream> #include <string> #include <vector> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; class StringTokenizer : public std::vector<string>{ public: StringTokenizer(const string& s, const string& delim = " ,") { string::size_type lastPos = s.find_first_not_of(delim, 0); string::size_type pos = s.find_first_of(delim, lastPos); while( string::npos != pos || string::npos != lastPos ) { push_back(s.substr(lastPos, pos - lastPos)); lastPos = s.find_first_not_of(delim, pos); pos = s.find_first_of(delim, lastPos); } } }; int main(int argc, char* argv[]) { StringTokenizer stk("1, 2, 3"); for( StringTokenizer::size_type i = 0; i < stk.size(); i++ ) { cout << stk[i] << endl; } system("pause"); return 0; } //---------------------------------------------------------------------------