我正在尝试下面的函数来获取文件名,同时允许按“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;
}