使用cin两次的问题

2024-02-20

这是代码:

string str;
cin>>str;
cout<<"first input:"<<str<<endl;
getline(cin, str);
cout<<"line input:"<<str<<endl;

结果是 getline 永远不会暂停以等待用户输入,因此第二个输出始终为空。

花了一些时间后,我意识到在第一次调用“cin>>str”后,似乎“\n”仍然存储在cin中(使用cin.peek()来检查),这立即结束了getline。解决方案将在第一次用法和第二次用法之间添加一行:cin.ignore(numeric_limits::max(), '\n');

但是,我仍然不明白,为什么第一次调用后会留下 '\n' ? istream&operator>> 的真正作用是什么?


The \n按照方式留在输入流中operator>>定义为std::string. The std::string用输入流中的字符填充,直到找到空白字符(在本例中\n),此时填充停止,空白现在是输入流中的下一个字符。

您还可以删除\n通过致电cin.get()之后立马cin>>str。然而,有很多很多不同的方法可以对这个特定的 I/O cat 进行剥皮。 (也许这本身就是一个好问题?)

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

使用cin两次的问题 的相关文章

  • 数据模板绑定垃圾邮件输出窗口出现错误:找不到管理 FrameworkElemen

    我有问题 System Windows Data 错误 2 找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement BindingExpression 无路径 数据项 空 目标元素是 So
  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • EF Core 通过完全替换断开集合导航属性的更新

    使用 EF Core 5 0 我有一个 SPA 页面 可以加载Group实体及其集合Employee来自 API 的实体 var groupToUpdate await context Groups Include g gt g Emplo
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • ASP.Net Core 内容配置附件/内联

    我正在从 WebAPI 控制器返回一个文件 Content Disposition 标头值自动设置为 附件 例如 处置 附件 文件名 30956 pdf 文件名 UTF 8 30956 pdf 当它设置为附件时 浏览器将要求保存文件而不是打
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 在简单注入器中解析具有自定义参数的类

    我正在使用以下命令创建 WPF MVVM 应用程序简易注射器作为 DI 容器 现在 当我尝试从简单注入器解析视图时遇到一些问题 因为我需要在构造时将参数传递到构造函数中 而不是在将视图注册到容器时 因此这不是适用的 简单注入器将值传递到构造
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i

随机推荐

  • 对 RichTextBox 字符串的不同部分着色

    我正在尝试对要附加到 RichTextBox 的字符串部分进行着色 我有一个由不同字符串构建的字符串 string temp DateTime Now ToShortTimeString userid message Environment
  • bootstrap datepicker、beforeShowDay 和禁用日期数组

    我正在尝试使用引导日期选择器插件 https github com eternicode bootstrap datepicker blob release docs index rst https github com eternicod
  • Xamarin:如何获取光标/触摸坐标(位置X和Y)?

    介绍 我正在创建我的第一个 Xamarin 应用程序 首先针对 UWP 然后是 Android 最后可能是 iOS 基本上 应用程序应该检测多个手指 并且圆圈会在每个手指上弹出并跟随它们 My app 首先 我认为 UI 和图形无法使用 X
  • 从 Heroku 上运行的 Celery 任务连接时出现 MySQL 查询错误

    在对外部 MySQL 数据库执行查询时 但仅在从 Heroku 上运行的 Celery 任务连接时 我看到错误的查询结果 同样的任务 在我自己的机器上运行时不会显示这些错误 并且错误只出现大约一半的时间 尽管当它们失败时 all任务是错误的
  • 欧拉计划:#8 [重复]

    这个问题在这里已经有答案了 当试图回答这个问题时 1000位数字中相邻的四个数字 最大乘积为 9 9 8 9 5832 73167176531330624919225119674426574742355349194934 969835203
  • 如何在 Doctrine 查询生成器中进行多个 WHERE IN 列查询?

    我想使用带有两列检查的 WHERE IN 语句更新数据库中的多条记录 纯 MySql 原始查询看起来像这样 并且它有效 UPDATE poll quota q SET q count q count 1 WHERE q form id 14
  • 使用 PHP 缩进 HTML(5) 时出现问题

    免责声明 请坦白这个问题的长度 这是我见过的现实世界问题中反复出现的问题 数百次都没有明确的 可行的解决方案 呈现 我有数百个 HTML 文件 我想使用 PHP 进行批量缩进 起初我想到使用 Tidy 但你应该知道 它默认与 HTML5 标
  • xCode 7:链接器命令失败,退出代码为 1(使用 -v 查看调用)

    当我在模拟器中运行我的应用程序时 一切正常 但是当我尝试在我的设备 iOS 8 4 上运行它时 我收到此错误 ld warning directory not found for option F Applications Xcode be
  • R闪亮:将文本显示为多行代码

    我想在我闪亮的应用程序上显示一些 R 代码 因此 我用了verbatimTextOutput但我找不到换行和显示代码段落的方法 这个解决方案 在 R Shiny 中使用 renderText 输出多行文本 https stackoverfl
  • Java中有通配符这样的东西吗?

    我正在运行一个比较程序 此时它会进行直接的 字符串到字符串 比较 如果它们完全匹配 则输出它们是匹配的 好吧 我希望添加一个允许 相似性 的附加功能 例如 String em1 52494646 String em2 52400646 if
  • 从 Azure SQL DW 中更新?

    我在尝试执行 UPDATE FROM 查询时在 Azure SQL DW 中收到错误 错误是 UPDATE 和 DELETE 语句中的 FROM 子句不能包含子查询源或联接 这只是 SQL DW 特有的吗 除此之外 我认为这个查询没有任何问
  • 局部变量类型推断未被识别

    我安装了 JDK 10 来尝试新功能 但我对此非常着迷var 由于某种原因 即使IntelliJ 版本2018 1 中添加了JDK 以下代码仍然无法编译 说Java找不到符号var public class Variations publi
  • 尝试返回列表中的数字

    我对这里的代码有几个疑问 我想做的是编写一个函数 它接受 2 个输入 一个列表和一个选项 其中选项为 0 或 1 并返回列表中的数字列表 如果选项为 0 它将返回大于 5 或 小于 5 的数字 如果选项为 1 它将返回第一个列表中所有奇数的
  • 实体框架和多线程

    我们在设计多线程实体框架驱动的应用程序时遇到一些问题 需要一些指导 我们在不同的线程上创建实体 将实体添加到集合中 然后将集合数据绑定到各种 WPF 控件 ObjectContext 类不是线程安全的 因此管理它我们基本上有 2 个解决方案
  • 闪亮的 downloadHandler 超时

    我制作了一个闪亮的应用程序 需要下载比下载处理程序允许的时间更长的时间 在我下载的数据完成之前 我不断收到一条错误消息 提示 未收到数据 有什么方法可以增加闪亮服务器应用程序中 downloadHandler 的超时长度吗 连接的默认超时时
  • 使用 git diff 创建部署文件列表时出现问题

    我想使用类似以下命令来创建要部署的 tarball tar cjvf deploy tar bz2 git diff name only 0abc 1def 当我单独运行它时 内部 git diff 命令会生成一个包含相对路径的文件列表 不
  • 分析字母数字字符串的格式

    我正在尝试编写一个函数 该函数接受一个字符串 对其进行解析 然后返回另一个字符串 该字符串总结了原始字符串中连续字母或数字字符的数量 例如 字符串999aa45bbx会回来3N2A2N3A i e 3个数字 接下来是 2 个阿尔法 2 个数
  • 函数重载和函数指针

    函数的名称是指向该函数的指针 但在函数重载的情况下 两个函数的名称是相同的 那么这个名字指向哪个函数呢 这取决于上下文 否则它是模棱两可的 看这个例子 http www java2s com Code Cpp Function Assign
  • 使用正则表达式删除 HTML 标签

    我需要转换 text We had i fun i Look at a href http example com this photo a of Joe 编辑 文本中可能有多个链接 to text We had fun Look at t
  • 使用cin两次的问题

    这是代码 string str cin gt gt str cout lt lt first input lt