我想知道While(cin)测试什么?

凯文·威金斯

我正在阅读Bjarne Stroustrup的书“软件-使用C ++的原理和实践”,并提供了以下代码:

Token get_token();
vector<Token>tok;

int main()
{
    while(cin)
    {
        Token t = get_token();
        tok.push_back(t);
    }
}

同时检查什么?

再也没有了

while将其条件表达式结果转换为bool据此,在iostream的情况下,它将调用std :: ios :: operator bool

返回是否设置了错误标志(failbitbadbit)。

请注意,此函数返回的值与member不同good,而与member相反fail

模型示例显示设置了哪些位以及何时设置:

#include <iostream>
#include <iomanip>

void foo(std::istream& in, std::ostream& out) {

    std::string str;
    out << "goodbit | eofbit | failbit | badbit | string" << std::endl;

    while(true) {
        in >> str;

        auto s = in.rdstate();

        out
                << std::setw(7) << bool(s & std::ios::goodbit) << " | "
                << std::setw(6) << bool(s & std::ios::eofbit)  << " | "
                << std::setw(7) << bool(s & std::ios::failbit) << " | "
                << std::setw(6) << bool(s & std::ios::badbit)  << " | ";

        if(in) {
                out << str << std::endl;
        }
        else {
            out << std::endl;
            break;
        }
    }

}

int main(void) {

    foo(std::cin, std::cout);

    return 0;
}

$ echo "a ab" | ./untitled (输入已通过管道传输)打印

goodbit | eofbit | failbit | badbit | string
      0 |      0 |       0 |      0 | a
      0 |      0 |       0 |      0 | ab
      0 |      1 |       1 |      0 |

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我想知道为什么我的程序没有在我的 while 循环中停止

来自分类Dev

我正在测试 ArrayBuffer 并想知道为什么结果是这样的:

来自分类Dev

想知道while循环

来自分类Dev

我想知道PYTHON的赏金挑战是什么

来自分类Dev

我想知道这个“:”是否是必要的,这个“:”代表什么?

来自分类Dev

我想知道以下代码的功能是什么

来自分类Dev

我想知道操作原理

来自分类Dev

我想知道SQL命令

来自分类Dev

我想知道seek的效率

来自分类Dev

我想知道执行每个测试步骤需要多长时间

来自分类Dev

我的Keylistener不起作用,我想知道为什么

来自分类Dev

想知道为什么我的代码无法删除我想要的任何号码?

来自分类Dev

我想知道为什么我必须使用Ajax打印在WordPress中使用的变量

来自分类Dev

想知道为什么我的JQuery数组循环未正确设置我的href

来自分类Dev

我想知道为什么我的代码在 XML 信息之间产生空白行?

来自分类Dev

我想知道如何用mail()+ while循环检查发送的电子邮件数量

来自分类Dev

我想知道为什么模板方法可以调用非模板方法?

来自分类Dev

如何等待Snackbar?我想知道什么时候关门

来自分类Dev

我想知道为什么魔术函数会为特定运算符提供特定答案

来自分类Dev

我想知道为什么dist文件夹的大小比src的角度大?

来自分类Dev

我想知道导致代码显示错误的问题是什么?

来自分类Dev

我想知道为什么Clojure中不评估代码的优点是数据

来自分类Dev

想知道我的用乌龟画棋盘的python代码发生了什么?有帮助吗?

来自分类Dev

想知道为什么我的GUI检查按钮功能不起作用?

来自分类Dev

等效于nodejs中的以下代码。我想知道FirstorDefault方法的作用是什么?

来自分类Dev

我想知道为什么导航div不占据100%的高度

来自分类Dev

想知道为什么我的带捕鼠器的Createjs会变慢。(提供了jsfiddle)

来自分类Dev

我想知道一个函数在其中创建对象时会发生什么

来自分类Dev

java扩展arraylist我想知道这段特定的代码做什么

Related 相关文章

  1. 1

    我想知道为什么我的程序没有在我的 while 循环中停止

  2. 2

    我正在测试 ArrayBuffer 并想知道为什么结果是这样的:

  3. 3

    想知道while循环

  4. 4

    我想知道PYTHON的赏金挑战是什么

  5. 5

    我想知道这个“:”是否是必要的,这个“:”代表什么?

  6. 6

    我想知道以下代码的功能是什么

  7. 7

    我想知道操作原理

  8. 8

    我想知道SQL命令

  9. 9

    我想知道seek的效率

  10. 10

    我想知道执行每个测试步骤需要多长时间

  11. 11

    我的Keylistener不起作用,我想知道为什么

  12. 12

    想知道为什么我的代码无法删除我想要的任何号码?

  13. 13

    我想知道为什么我必须使用Ajax打印在WordPress中使用的变量

  14. 14

    想知道为什么我的JQuery数组循环未正确设置我的href

  15. 15

    我想知道为什么我的代码在 XML 信息之间产生空白行?

  16. 16

    我想知道如何用mail()+ while循环检查发送的电子邮件数量

  17. 17

    我想知道为什么模板方法可以调用非模板方法?

  18. 18

    如何等待Snackbar?我想知道什么时候关门

  19. 19

    我想知道为什么魔术函数会为特定运算符提供特定答案

  20. 20

    我想知道为什么dist文件夹的大小比src的角度大?

  21. 21

    我想知道导致代码显示错误的问题是什么?

  22. 22

    我想知道为什么Clojure中不评估代码的优点是数据

  23. 23

    想知道我的用乌龟画棋盘的python代码发生了什么?有帮助吗?

  24. 24

    想知道为什么我的GUI检查按钮功能不起作用?

  25. 25

    等效于nodejs中的以下代码。我想知道FirstorDefault方法的作用是什么?

  26. 26

    我想知道为什么导航div不占据100%的高度

  27. 27

    想知道为什么我的带捕鼠器的Createjs会变慢。(提供了jsfiddle)

  28. 28

    我想知道一个函数在其中创建对象时会发生什么

  29. 29

    java扩展arraylist我想知道这段特定的代码做什么

热门标签

归档