如何读取未知数量的输入?

2024-05-03

我正在使用 C++ Primer 这本书学习 C++。

In 第1.4.3节,给出了以下关于读取未知数量的输入的示例代码。

#include <iostream>
int main()
{
  int sum = 0, value = 0;
  // read until end-of-file, calculating a running total of all values read
  while (std::cin >> value)
  sum += value; // equivalent to sum = sum + value
  std::cout << "Sum is: " << sum << std::endl;
  return 0;
}

根据这本书,如果我们输入3 4 5 6,输出将是Sum is: 18

但是当我在我的电脑上尝试这个时(带有 MinGW 的 Windows 10),代码并没有结束。即使我输入换行符,它也会继续要求输入。仅当我输入非 int 输入时才有效f.


这是预期的吗?如果是,是否有任何代码在输入换行符后停止?

我对 c++ 很陌生,而且我已经学过 python,所以这么早就陷入困境是相当令人沮丧的。


感谢致敬。


You need to terminate your input by an End-Of-File-character (i.e. CTRL-Z on Windows, CTRL-D on Mac/Unix), not just by an End-Of-Line (i.e. Enter).

A simple Enter is interpreted as white space, which will be simply ignored by operator>> when reading into an integral data type.

CTRL-Z / End-Of-File, in contrast, makes any operator>> fail with an error.

也可以看看这个答案 https://stackoverflow.com/a/16136924/2630032.

注意:输入f也会终止你的循环,因为f不被视为有效整数;因此,std::cin >> value with value存在类型int和一个像这样的输入f也会失败。更准确地说:operator>>实际上返回对输入流的引用,但如果读入值失败,failbit在流上设置,然后用布尔表达式解释流对象(隐式调用basic_istream::operator bool()) 返回false;所以也许这本书的作者不想在书中的相应部分解释这些细节:-)

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

如何读取未知数量的输入? 的相关文章

  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • (Django) (外键问题) model.person_id 不能为 NULL

    我知道这在 Django 圈子里似乎是一个被过度询问的问题 但我不敢说我 还没有找到解决方案 我的模型 from djago import User class InfoPersonal models Model person models
  • 使用创建的 201 进行重定向

    有没有办法通过 201 答案重定向 RFC规定新创建的资源必须在Location标题 我确实指定了它 我假设浏览器会重定向 但事实并非如此 即使页面没有内容 我希望用户在 POST 操作之后重定向到新资源 因此我很想使用303 See Ot
  • 如何修复 lldb 在运行调用后立即停止的问题?

    我在 Mojave 上使用 lldb 和 Xcode 10 2 1 一旦命令 运行 到 lldb 就会发生这种情况 lldb target create
  • 如果可观察对象之一停止发出事件,为什么 Observable.race 无法工作?

    如果互联网连接丢失 我想在 webapp 中实现 websocket 重新连接 为了检测互联网是否丢失 我使用乒乓方法 这意味着我从客户端发送 ping 消息 服务器返回给我 pong 消息 当 webapp 加载时 我发送 init pi
  • Leaflet.js setMaxBounds 忽略南界

    Using 传单 js http leafletjs com reference html对于开源地图项目 但我需要设置用户无法超越的特定界限 地图对象的 maxBounds 属性在北 东 西方向上按预期工作 但它让我永远向南滚动 在小提琴
  • “NoneType”对象不可订阅?

    list1 name1 info1 10 list2 name2 info2 30 list3 name3 info3 50 MASTERLIST list1 list2 list3 def printer lst print Availa
  • 为什么设置 POST Content-type:"Application/Json" 会导致 REST WebService 上出现“错误请求”?

    我在使用网络服务时遇到一个奇怪的问题 当我作为客户端将表单发布到 REST Web 服务而不设置任何 类型内容 标头时 一切正常 我接到服务器上的电话并且 Json 文本可用 如果我作为客户端将我的发布请求的内容类型标头设置为 applic
  • 为 Visual Studio 应用程序设置平台目标的目的是什么?

    对于任何 VS 项目 都可以在该项目的构建属性中设置平台目标 您可以将其设置为任何 CPU x86 x64 或 Itanium 我的问题是 如果我将此值设置为 x86 是否意味着我无法在 x64 计算机上运行该项目 如果是这样 为什么还要使
  • 为什么 urllib2 出现 urllib2.HTTPError 而 urllib 没有错误?

    我有以下简单的代码 import urllib2 import sys sys path append BeautifulSoup BeautifulSoup 3 1 0 1 from BeautifulSoup import page h
  • 如何从同一项目生成两个声纳报告?

    我想从同一项目创建两组声纳报告 一种会涵盖所有内容 另一种会排除一些包裹 这可能吗 如果可以 该怎么做 编辑 设置排除不是问题 但有两个报告才是问题 在 Maven 中创建新的配置文件 并为每个配置文件添加带有新分支的呼叫声纳 mvn cl
  • 在正则表达式中搜索连字符和破折号的所有变体

    我一直在尝试从转换为文本文件的 PDF 中提取某些文本 PDF 来自各种来源 我不知道它们是如何生成的 我试图提取的模式只是一个简单的两位数字 后跟一个连字符 然后是另外两位数字 例如12 34 所以我写了一个简单的正则表达式 d d d
  • 同位素 Jquery 插件布局问题

    我正在尝试在此站点上设置同位素 它需要处理布局 并且我需要能够将项目附加到容器中 问题是它似乎没有正确初始化图像 这是我初始化它的方法 document ready function var container container cont
  • 打印富文本框

    我正在制作一个简单的 WinForms 应用程序 我想允许用户从 RichTextBox 打印文本 我跟着MSDN链接 https msdn microsoft com en us library cwbe712d v vs 110 asp
  • .net core 2.2 & Angular 7:文件上传控制器中的 IFormFile 始终为 null

    当查看其他答案和一些谷歌时 一切似乎都很好 但我的控制器从未收到任何数据 api uris等正确 请求到达正确的控制器 角度片段 component html 我的输入字段 div class input group div
  • Wildfly Undertow 文件 Mimetypes

    我希望 Undertow 提供静态文件 如 jpg png js css txt 等 我在standalone xml中编辑了undertow子系统
  • 指定 purecss 网格的折叠顺序

    我想要一个 purecss 网格 当它折叠时 即较小屏幕上的断点 是否可以使右侧网格项出现在左侧网格项之前 即某种崩溃命令 我相信使用 Flexbox 模型可以实现这些目标 但我不是这方面的专家 所以非常感谢指导 Thanks PureCS
  • 返回 const std::string 真的比非 const 慢吗?

    在另一个问题中 用户评论说返回 const std string 会损失移动构造效率并且速度更慢 分配此方法的返回字符串真的是这样吗 const std string toJson const std string someText con
  • Excel:如何通过VBA搜索电子表格1值是否存在于电子表格2中

    在电子表格 1 中 B 列包含值 即 V 9999 我正在尝试查看电子表格 2 的 B 列中是否存在这些值 我遇到的问题是 每次更新电子表格时数据都会发生变化 并且 B 列中的每行之间并不总是 1 1 匹配 例如 V 9999 可能存在于电
  • Azure 角色配置管理

    当您别无选择只能在 web config 或 app config 中保存配置设置时 我不明白 Windows Azure 如何让您改变应用程序的配置 例如 项目经常会使用大量使用 web config 的第三方库 web config 的
  • 如何读取未知数量的输入?

    我正在使用 C Primer 这本书学习 C In 第1 4 3节 给出了以下关于读取未知数量的输入的示例代码 include