0
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::istringstream iss;
iss.str("[email protected]");
double result;
iss >> result;
std::cout << result << std::endl;
if (!iss.eof() || iss.fail()) {
std::cout << "error occurred" << std::endl;
}
}
1.23
error occurred
有沒有更好的解決方案,以檢查所有字都經過處理?
UPDATE
另外,我不知道是否有什麼方法可以檢測出錯誤範圍。
您可能對['boost :: lexical_cast']感興趣(http://www.boost.org/doc/libs/1_63_0/doc/html/boost_lexical_cast/synopsis.html#boost_lexical_cast.synopsis.lexical_cast)。 – Angew
@Angew,我需要依賴於語言環境的鑄造而不需要設置全局語言環境,因此我選擇了基於流的解決方案。 – triclosan
你可能想要使用'iss >> result >> std :: ws;'如果它有leagal有尾隨空格。否則,我認爲這是一樣好。 – Galik