检查“2.4393”或“2”等字符串是否有效的最快方法是什么 - 它们都可以用双精度数表示,而字符串“2.343”。或“ab.34”不是吗?特别是,我希望能够读取任何字符串,如果它can是一个双精度型,为其分配一个双精度变量,如果它不能是一个双精度型(在它是一个单词或只是无效输入的情况下),则会显示一条错误消息。
Use std::istringstream并确认所有数据均已使用eof():
std::istringstream in("123.34ab");
double val;
if (in >> val && in.eof())
{
// Valid, with no trailing data.
}
else
{
// Invalid.
}
请参阅演示:http://ideone.com/gpPvu8.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)