c++ - 如何判断对变量的流提取是否失败?

标签 c++

我正在将字符串流中的数据提取到 stringdouble 中:

std::string word;
double num;
std::istringstream stream("hello x");

stream >> word >> num;

std::cout << word;
std::cout << num;

是否可以判断第二个标记 "x" 是否已成功解析为 int

在这种情况下,显然不会,x 的值为0

最佳答案

提取运算符(>>)将返回真或假,判断提取是否成功。

if (stream >> num)
  cout << "success\n";
else
  cout << "failed\n";

此外,您可能会看到在 istringstream 对象上设置了 failbit

if (stream.fail())
  cout << "failbit is set\n";

关于c++ - 如何判断对变量的流提取是否失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621675/

相关文章:

c++ - twitcurl OAuth - 错误 89 : Invalid/Expired Token

c++ - 如何链接树中同一级别的所有节点

c++ - 如何将任何值转换为字节数组并将其附加到字节列表?

c++ - C++ 可以实现类型数组吗?

c++ - boost signals2 - 通过插槽断开连接时出错

c++ - std::map 分配器绑定(bind)到所有键和值的堆?

c++ - 类型严格依赖于另一个(嵌套类) - 语法

c++ - 当涉及到简单推导时,我应该在继承中覆盖什么?

C++算法的复杂度?

c++ - 寻找一种重新初始化结构的简单方法