打破不终止do-while循环

时间:2013-03-05 02:01:27

标签: c++ do-while

所以这将是一个愚蠢的问题,但我现在不能想到这一点...这下面的do-while循环并没有像它应该的那样终止。

    do {
            if(inp.eof())
                    throw("Unexpected end of file");

            getline(inp, l);
            line++;

            std::stringstream com(l);

            com >> command;

            if(command == ">>") {
                    std::cout << "Why?" << std::endl;
                    break;
            }
    } while(command != ">>");

从这个循环开始,如果命令变成“&gt;&gt;”,它应该以两种方式结束吗?不幸的是,我的代码只输出“为什么?”在if中,完全忽略break语句,并继续循环直到最终我到达inp.eof(),它会抛出一个错误。这应该是基本的,但不知何故,我不知道它在做什么。

编辑:更新:当我将其更改为while(true)并保留break语句时,它完美地运行。将其更改为do-while并且失败。不知道为什么,但是这个糟糕的事情是有效的,而且这就是我现在所关心的。

0 个答案:

没有答案