所以这将是一个愚蠢的问题,但我现在无法解决这个问题......下面的这个 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 != ">>");
从这个循环中,如果命令变成“>>”,它应该以两种方式之一结束,对吧?不幸的是,我的代码只是输出“为什么?” 在 if 内部,完全忽略了 break 语句,并继续循环,直到最终我到达 inp.eof(),它会抛出一个错误。这应该是基本的,但不知何故,我不知道它在做什么。
编辑:更新:当我将其更改为 while(true) 并保留 break 语句时,它可以完美运行。将其更改回 do-while 并失败。不知道为什么,但该死的东西有效,这就是我现在所关心的。