0

「ESC」を押して戻ることを許可しながら、以下の関数を使用してファイル名を取得しようとしています

しかし、何らかの理由で_getch() は常に [1 '\x1']を返し、印刷されているのはBackSpace であってもスマイリーフェイスです (これは素晴らしいことですが、私が望んでいることではありません)。

  • 何が起きてる?

コードを改善する方法に関する他の洞察は大歓迎です! (私は最近大学での最初の年を終えたので、プログラミングにはまだかなりの初心者です)

string& Get_Filename()
{
    char ch;
    string name;

    while (ch = _getch() != 'CR')
    {
        if (ch == 'ESC')
            throw RESTART;
        if (ch == 'BS')
        {
            name.pop_back();
            cout << 'BS';   // Also, will this correctly delete or will I need to
        }                   // << '\b' << ' ' << '\b'?
        else
        {
            name += ch;
            cout << ch;
        }
    }
    return name;
}
4

1 に答える 1