2

したがって、これはばかげた質問になるでしょうが、現時点ではこれを理解することはできません... 以下の 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 に戻すと失敗します。理由はわかりませんが、くそったれが機能し、それが今のところ私が気にかけていることのすべてです。

4

0 に答える 0