在C++中获取用户输入的第一个字母

Tol*_*Şen 1 c++

我编写了一个控制台程序,它从用户那里获取一些特定的字符输入来执行操作.程序要求输入,用户键入"i"表示插入或"r"表示删除等.问题是当用户输入多个字母时,程序表现得很奇怪.

char selection;
bool finish = false;
while (!finish){
    print_menu();
    cin >> selection;
    finish = perform_operation(selection);
}
Run Code Online (Sandbox Code Playgroud)

这就是我获得用户输入的方式.我想获得用户输入的第一个字符并忽略其余部分,并表现如此.我该怎么做?

注意:我不允许使用"string"类,但我可以使用每个str函数!

感谢帮助!

另一个案例:

如果我想获得大量字符怎么办?例如:用户输入一个10个字符的名称但我只想获得前5个字符.我该怎么办?

Lig*_*ica 6

如果要读取一个字符,请阅读一个字符.

没有一个循环可以读取尽可能多的字符.

char selection;
print_menu();
if (cin >> selection)
   finish = perform_operation(selection);
else
   throw std::runtime_error("Bad input!");
Run Code Online (Sandbox Code Playgroud)

我已经为您的I/O操作添加了基本的错误检查以获得良好的测量结果.