したがって、これはばかげた質問になるでしょうが、現時点ではこれを理解することはできません... 以下の 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 != ">>");
このループから、コマンドが ">>" になった場合、2 つの方法のいずれかで終了する必要がありますよね? 残念ながら、私のコードは単に「なぜ?」を出力します。if 内では、break ステートメントを完全に無視し、最終的に inp.eof() に到達するまでループを続行し、そこでエラーがスローされます。これは基本的なはずですが、どういうわけか、それが何をしているのかわかりません。
編集: 更新: while(true) に変更して break ステートメントを保持すると、完全に機能します。do-while に戻すと失敗します。理由はわかりませんが、くそったれが機能し、それが今のところ私が気にかけていることのすべてです。