在 C++ 中使用 istringstream 时“因一个错误而关闭”

2024-05-29

执行以下代码时出现一个错误

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main (int argc, char* argv[]){
    string tokens,input;
    input = "how are you";
    istringstream iss (input , istringstream::in);
    while(iss){
        iss >> tokens;
        cout << tokens << endl;
    }
    return 0;

}

它打印出最后一个标记“you”两次,但是如果我进行以下更改,一切正常。

 while(iss >> tokens){
    cout << tokens << endl;
}

谁能解释一下 while 循环是如何运行的。谢谢


那是对的。条件while(iss)仅失败当你读完流的末尾之后。所以,在你提取之后"you"从你的直播来看,这仍然是真的。

while(iss) { // true, because the last extraction was successful

所以你尝试提取更多。这次提取失败,但不影响存储在tokens,所以再次打印。

iss >> tokens; // end of stream, so this fails, but tokens sill contains
               // the value from the previous iteration of the loop
cout << tokens << endl; // previous value is printed again

正是出于这个原因,您应该始终使用您展示的第二种方法。在这种方法中,如果读取不成功,则不会进入循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中使用 istringstream 时“因一个错误而关闭” 的相关文章

随机推荐

  • 在 C# 中将 ' 替换为 \'

    在这个变量中 我想在每个 之前添加一些 string html a href Calendrier de l annee prochaine a html html Replace No change html html Replace N
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 实体框架在多对多更新场景中附加问题

    我有一个场景 我希望更新电影实体及其与流派的多对多关系 导航属性Genres电影中包含存根Genre只包含的对象GenreID因为我想节省查询所有流派的数据库 请参阅下面的代码 其相当不言自明 问题是我需要将 存根 流派附加到上下文 以便
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 在 VS Toolbox 中安装自定义控件

    我们公司提供安装 Inno Setup 的第三方组件 我们用VS套餐自动将我们的组件放入 Visual Studio Toolbox 中 但有时会失败 VS 包还需要一些名为 包加载密钥 尽管我们对其进行了测试 但 Visual Studi
  • JSP模板实现(复合视图模式)

    为 Java 网站实现复合视图模式的最佳方法是什么 我的想法是采用一个 jsp 并包含多个页面 例如 h1 Layout Start h1
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • 获取颜色位置的深度,Kinect SDK

    我正在寻找方法 尽快 从 Kinect 相机获取颜色像素的相应深度 我找到了 MapDepthFrameToColorFrame 函数 但这只给我特定深度位置的颜色 我想要相反的颜色 我想要这个的原因是我将能够单击 RGB 图像上的某个位置
  • 从 HTML 字符串中解析和选择

    使用 ajax 调用 我返回了页面的partialView HTML 但在显示它之前 我希望从主 div 中提取信息 如果我创建一个浮动窗口 该数据只是大小信息 Code div class window details more data
  • 通过 apache 代理运行 socket.io 的问题

    最近我从使用端口号转向 apache 代理 现在我收到以下浏览器控制台错误 VM6 1 获取400 错误请求 VM6 1 后400 错误请求 我的 apache 日志文件充满了这些消息 Mon Mar 02 18 25 03 199849
  • 如何打开新选项卡并更改当前页面

  • 未捕获的引用错误:在 karma start karma.conf.js 上未定义 require

    使用 Karma 和 Jasmine 对 Rails 应用程序的 Angular 前端进行单元测试 看来我已经做了所有已知的事情来解决这个错误 并且我的 package json 中留下了一百万个依赖项 这是我的 Karma conf js
  • Visual Studio 2010 Web 部署任务失败

    我正在尝试使用 VS2010 的一键发布功能将测试站点从我的笔记本电脑部署到我的服务器 我已关闭两台计算机上的防火墙 并且 MS 部署服务已在我的笔记本电脑和服务器上启动并运行 但是 当我尝试在笔记本电脑上从 VS2010 发布时 出现以下
  • Laravel 5 包中依赖注入的最佳方法

    我正在为 Laravel 5 开发一个包 现在我需要受益于依赖注入来拥有一个更具可扩展性和可靠性的应用程序 我不知道最好采用哪种方法以及为什么 这是我的一段代码 我需要注射Lang类依赖 class MyController extends
  • 将 Bootstrap CSS 中的列表居中[重复]

    这个问题在这里已经有答案了 重复报告后编辑 抱歉 我认为建议的重复项实际上可能是重复项 我先尝试了一下 但它对我不起作用 因此出现了一个新问题 再次查看新的建议答案后 我意识到我的问题可能与我正在使用的工具 codepen io 的开箱即用
  • 通过函数传递自定义比较器

    我有一个带有函数的类 MyClass doStuff std vector
  • 列出自定义类成员和类型

    这似乎是最基本的事情 但不知何故我找不到答案 也无法弄清楚 假设我有一个自定义类 public class WineCellar public string year public string wine public double nrb
  • 谷歌分析与 Ionic

    我正在尝试使用 Google Analytics 添加到 Ionic phonegap Covdova 应用程序中this https blog nraboy com 2014 06 using google analytics ionic
  • 升级到 Gitlab 6.0 后图形丢失

    昨天 我将 Gitlab 安装从 5 3 升级到 6 0 技术上从 5 3 升级到 5 4 从 5 4 升级到 6 0 从那时起我无法显示网络和其他图表 在网络页面上 似乎有些 JavaScript 未加载 因为我收到 网络未定义 错误 图
  • 在 C++ 中使用 istringstream 时“因一个错误而关闭”

    执行以下代码时出现一个错误 include