为了账号安全,请及时绑定邮箱和手机立即绑定

如何测试字符串运算符>是否解析了坏类型并跳过它

如何测试字符串运算符>是否解析了坏类型并跳过它

C++ C
狐的传说 2019-06-04 15:52:25
如何测试字符串运算符>是否解析了坏类型并跳过它我对讨论使用的方法很感兴趣stringstream若要分析具有多种类型的行,请执行以下操作。首先,我要看一看下面的一行:"2.832 1.3067 nana 1.678"现在让我们假设我有一个长行,其中包含多个strings和doubles..解决这一问题的明显方法是对字符串进行标记化,然后检查每个字符串的转换。我有兴趣跳过第二步,并使用stringstream直接找到数字。我想了一个很好的方法来处理这个问题,那就是读取字符串并检查failbit已被设置,如果我尝试将字符串解析为Double,它将被设置为。假设我有以下代码:string a("2.832 1.3067 nana 1.678");  stringstream parser;  parser.str(a);  for (int i = 0; i < 4; ++i)  {      double b;      parser >> b;      if (parser.fail())      {          std::cout << "Failed!" << std::endl;          parser.clear();      }      std::cout << b << std::endl;  }它将打印以下内容:2.8321.3067Failed!0Failed!0我并不奇怪它不能解析一个字符串,但是内部所发生的事情,以致于无法清除其failbit解析下一个号码?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 512 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信