C++ IO 流简介

2023-11-25

我得到了一段代码本文我很困惑它是如何工作的?该片段开头写道:

您可以通过测试读取结果来检测特定读取或写入操作是否失败。例如,要检查是否从用户读取了有效的整数,您可以执行以下操作:

int x;
if ( cin >> x ) 
{
    cout << "Please enter a valid number" << endl;
}

这是有效的,因为读取操作返回对流的引用。

我知道 cin >> x 操作返回对 cin 的引用,但我仍然对如何评估对标准输入流对象的引用允许您检查输入是否是有效整数感到困惑。


cin是一个实例istream模板类。operator >>作用于此 istream 实例以将输入加载到数据中并返回对此的引用istream。然后在while通过调用来测试它的条件cin::operator void*() const (explicit operator bool() const在 C++11 中)它调用fail()函数来测试操作是否成功。这就是为什么您可以在 while 条件下使用此操作

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

C++ IO 流简介 的相关文章

  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 如何从一个活动检索 Double 值到另一活动?

    我制作了一个包含 2 个活动的应用程序 其中第一个活动包含一些 EditText 十进制数字 另一个活动也包含一些 EditText 十进制 现在我想将一个 EditText 的值传递给另一个 但作为 双 而不是作为一个字符串 因为该值将用
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include

随机推荐

  • 隐式 DataTemplate 不起作用

    为什么下面隐含DataTemplate不行 仅内嵌注释DataTemplate将工作 注意 如果我删除两者DataTemplates 我看到一个字符串表示形式ProductListView完整类型名称
  • 日志文件中写入什么内容?

    我的问题很简单 将什么写入日志 有什么约定吗 我必须放入什么 由于我的应用程序必须发布 我希望有友好的日志 大多数人都可以阅读这些日志 而无需询问它是什么 我已经有了一些想法 比如时间戳 每个函数 方法的唯一标识符等 我想要几个日志级别 例
  • Android USB鼠标右键单击正确行为(ICS)

    插入 android ics 的 USB 鼠标的右键单击是否始终指定为 后退 按钮 我有一台平板电脑 但没有 我想删除状态栏 并且仍然能够通过 USB 鼠标使用平板电脑 有谁知道在哪里 如何配置 android 中的行为 迟到的答案 但答案
  • C++ 重写异常::what()

    我有一个自定义异常 class RenterLimitException public std exception public const char what 重写what 的正确方法是什么 现在 我在头文件中创建了这个自定义 并希望覆盖
  • 实体框架多租户共享数据架构:单列、多个外键

    我有以下数据结构 property Notification abstract class BindableBase base class for all tenant scoped objects abstract class Tenan
  • C++ 性能,for 与 while

    一般来说 或根据您的经验 for 和 while 循环之间的性能是否存在差异 如果它们是双重 三重嵌套怎么办 矢量化 SSE 是否受 g 或 Intel 编译器中的循环变体影响 谢谢 Here是一篇关于这个主题的好论文
  • 使用可变参数模板显式模板实例化

    我有几个模板类Impl 使用一些抽象方法 部分在 CPP 文件中实现 因此我需要显式实例化我的模板以便链接器找到它 如下所示 template class Impl
  • 使用 GROUP BY 连接单列字段

    有没有什么方法可以通过对字段进行分组来组合 连接一列中的字段 例如 col1 col2 1 aa 1 bb 1 cc 2 dd 2 ee 我想查询类似的内容 select col1 concat col2 from tableName gr
  • django 模板中的变量减法

    是可以写的 myval add 5 myval add value 乃至 myval add 5 但是 我不知道应该输入什么来添加值 1 之类的 myval add value 可悲的是 这不起作用 您需要使用双引号 myval add 5
  • 合并 XML 文档 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要 合并 两个 XML 文档 覆盖重叠的属性和元素 例如 如果我有文件1
  • ConfigurationManager 不保存设置

    这是我正在使用的代码 private void SaveConfiguration if txtUsername Text txtPassword Text ConfigurationManager AppSettings Username
  • Netbeans - 安装 SASS

    我曾多次尝试在 netbeans 上安装 SASS 我已遵循以下教程 http kgagliardo com blog netbeans sass windows 7 创建并尝试保存 SASS 文件时出现以下错误 并且未创建 CSS 文件
  • 自定义 UIControl 和手势识别器

    我正在尝试创建一个类似于滑块的自定义 UIControl 该控件是一个视图的子视图 该视图还附加了一个点击手势识别器 现在的问题是这个点击手势识别器取消了发送到我的控件的触摸 有没有办法可以从我的控件的代码中覆盖它 如果我查看 iOS 中的
  • 如何使 macOS 框架可在 Nix 环境中 clang?

    我在 macOS 10 13 5 上学习 Rust 编程 并使用 Nix 来控制我的开发环境 一些行动 例如包括jsonwebtoken库或安装cargo watch模块 导致构建需要似乎未安装的 macOS 框架 我收到此错误消息 not
  • 在 VideoView 中播放视频时 Android 后退按钮不起作用

    在 VideoView 中播放视频时 Android 后退按钮不起作用 但它在播放视频之前有效 我正在为 VideoView 使用自定义 MediaController 我尝试使用调度按键事件 它不起作用 使用 VideoView 的 Ac
  • 将 ggplot2 颜色条刻度线更改为黑色

    在我的一些图中 我发现很难看到颜色条中的刻度线 我还没有找到改变蜱虫颜色的记录方法 所有示例似乎都集中在更改标签或根本不绘制刻度线 是否可以 Data require ggplot2 require grid n lt 100 x lt y
  • 给定一个时间,如何找到一个月前的时间

    给定一个时间 如何查找一个月前的时间 strtotime 1 month timestamp http php net manual en function strtotime php
  • Android:java.net.DatagramSocket.bind:无效参数异常

    背景 我正在编写一个简单的 UDP 应用程序来 ping 一个测试版服务器 我每分钟左右管理一次 告诉我它仍在运行 对于那些想知道的人 我无法在服务器上启用 ping 我计划在手机上运行此命令 以便在服务器不再响应时向我发出警告 我正在尝试
  • 如何将 Windows 的 EOL 设置为 LF,以便 API 通过 \n 获取值。不是 \r\n

    我使用 monaco editor create 方法来创建模型 问题是 monaco 正在将多行代码解析为 Windows 操作系统中的 r n 格式 我尝试在 monaco editor create 的 editorOptions 中
  • C++ IO 流简介

    我得到了一段代码本文我很困惑它是如何工作的 该片段开头写道 您可以通过测试读取结果来检测特定读取或写入操作是否失败 例如 要检查是否从用户读取了有效的整数 您可以执行以下操作 int x if cin gt gt x cout lt lt