istream::getline 返回类型

2023-12-22

什么是istream::getline方法返回?

我这样问是因为我已经看到要循环遍历文件,应该这样做:

while ( file.getline( char*, int ) )
{
    // handle input
}

被退回的是什么?


它返回一个流,以便我们可以链接操作。

但是,当您在布尔上下文中使用对象时,编译器会查找可以将其转换为可在布尔上下文中使用的类型的转换运算符。

C++11

在这种情况下,流有explicit operator bool() const http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool。调用时它会检查错误标志。如果设置了failbit 或badbit,则返回false,否则返回true。

C++03

在这种情况下,流有operator void*() const http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool。由于这会产生一个指针,因此可以在布尔上下文中使用它。调用时它会检查错误标志。如果设置了failbit或badbit,那么它返回NULL,这相当于FALSE,否则它返回一个指向self的指针(或者其他有效的东西,尽管你不应该使用这个事实))。

Usage

因此,您可以在任何需要布尔测试的上下文中使用流:

if (stream >> x)
{    
}

while(stream)
{
    /* do Stuff */
}

注意:在外部测试流然后在条件/循环语句的主体内对其进行读/写是个坏主意。这是因为读取行为可能会使流变差。通常最好将阅读作为测试的一部分进行。

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

istream::getline 返回类型 的相关文章

随机推荐

  • VBA 中的编辑距离 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有包含数据的 Excel 工作表 我想获取它们之间的 Levenshtein 距离 我已经尝试导出为文
  • 使用 Python 2.7 的 HTML 解析树

    我试图为下面的 HTML 表配置一棵解析树 但无法形成它 我想看看树结构是什么样的 有人可以帮助我吗 p class title b The Dormouse s story b p p class story Once upon a ti
  • Python:BASIC 中是否有相当于中、右、左的词?

    我想做这样的事情 gt gt gt mystring foo gt gt gt print mid mystring Help 切片来救援 def left s amount return s amount def right s amou
  • iText 通过检查 CRL 来验证签名

    我正在设置一个验证器 可以检查签名的有效性 我所做的签名基于 DSS 级别 LT 因此文档中内置了撤销检查 我现在遇到的问题是在我在iText中开发的验证器层面 它允许验证签名的有效性以及撤销信息的有效性 根据我的研究 IText 允许基于
  • 在 Vim 中查找 C++ 类成员的定义/引用

    我正在将 Vim 用于一个我已经开始从事的 C 项目 并且最近我花了很多时间浏览现有代码以掌握它的窍门 为了使浏览更容易 我在 Vim 中设置了 ctags 和 cscope 来跳转到定义并查找引用 然而 我发现他们都没有足够的智能来知道成
  • 具有错误字符容限的最长公共子串

    我在这里找到了一个脚本 在寻找最低公共子串时效果很好 但是 我需要它来容忍一些不正确 丢失的字符 我希望能够输入所需的相似性百分比 或者指定允许的丢失 错误字符的数量 例如 我想找到这个字符串 大黄色校车 该字符串内部 那天下午他们乘坐黄色
  • 在node.js中使用python模块

    是否可以创建一种胶水 使 python 模块 更具体地说 库绑定 可以在 Node js 中使用 一些数据结构可以直接映射到 V8 对象 例如数组 字典 更重要的是 这会是比手动或通过 FFI 更优雅的创建绑定的方式吗 简而言之 值得吗 试
  • 更改seaborn条形图中的色标

    我想对我的数据使用seaborn条形图 并根据Y轴的值使用色标 例如 在此图像中 颜色根据调色板从左到右变化 但我真正想要的是相同的配色方案 但 垂直 而不是 水平 这可能吗 我已经搜索并尝试设置hueY 轴参数 但它似乎不起作用 我该怎么
  • 为什么 std::chrono::time_point 不够大,无法存储 struct timespec?

    我正在尝试最近的std chronoapi 和我发现在 64 位 Linux 架构和 gcc 编译器上time point and duration类无法以最大分辨率 纳秒 处理操作系统的最大时间范围 事实上 相比之下 这些类的存储似乎是
  • 谷歌地图v3:边界中心与地图中心不同

    怎么可能map getCenter 可能不同于map getBounds getCenter gt cragMap getCenter gt Q d 13 823563748466814 e 0 toString function b fu
  • Jupyter 笔记本注释快捷方式不起作用

    我试图使用 ctrl 在 jupyter 笔记本中注释行 但这不起作用 我使用的是 Windows 10 和 Mozilla Firefox 您的问题可能是由于您的浏览器设置造成的 ctrl 必须设置为其他值 否则您不会处于编辑模式
  • 如何让Hibernate在与JPA一起使用时自动在数据库中创建表?

    我是 JPA 的新手 现在我正在尝试理解标准示例 我在网上阅读并看到了一些 stackoverflow 问题 我在所有这些问题中发现以下语句将允许 hibernate 在运行时创建表 hibernate hbm2ddl auto creat
  • 如果我没有接住投掷会发生什么?

    这是非常基本的 但我在任何地方都找不到答案 那里有很多关于投掷和接球的帖子 但如果我实际上会发生什么throw from function1然后打电话function1 from function2但不要抓住它 这是否意味着它只是被重新抛出
  • 如何在不指定父字段的情况下直接查询嵌套字段?

    我在 mongodb 中有接下来的 3 个文档 文件1 name device1 camera number 3 文件2 name device2 camera number 1 文件3 name device3 wifi number 2
  • ng 选择样式组标题和项目

    我正在使用 ng select https ng select github io ng select data sources https ng select github io ng select data sources 我的角度项目
  • 如何防止浏览器将 ß 更改为 ss?

    我试图让以下德语字符正确显示 不幸的是 它显示为 ss 我尝试遵循我在以下位置找到的一些指示 如何在 HTML 中正确显示德语字符 https stackoverflow com questions 423693 how can i pro
  • 我可以使元素对悬停不可见吗?

    我有一个具有星爆效果 透明 png 背景 的 div 我想在它们悬停时将其叠加在一系列图像上 我必须使 div 变大才能包含图像 但这会妨碍检测图像上的悬停 我将它们全部作为背景图像 因此它们是通过高分辨率 css mediaquery 加
  • Java中的文件截断操作

    在 Java 中截断文件的最佳实践方法是什么 例如这个虚拟函数 只是作为一个例子来阐明意图 void readAndTruncate File f List
  • Nest Battery CamGenerateWebRtcStream 命令出现 INVALID_ARGUMENT 错误

    我正在尝试执行sdm devices commands CameraLiveStream GenerateWebRtcStream https developers google com nest device access traits
  • istream::getline 返回类型

    什么是istream getline方法返回 我这样问是因为我已经看到要循环遍历文件 应该这样做 while file getline char int handle input 被退回的是什么 它返回一个流 以便我们可以链接操作 但是 当