我编写了一个控制台程序,它从用户那里获取一些特定的字符输入来执行操作.程序要求输入,用户键入"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个字符.我该怎么办?
如果要读取一个字符,请阅读一个字符.
没有一个循环可以读取尽可能多的字符.
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操作添加了基本的错误检查以获得良好的测量结果.