在C++中,我如何接受不同于同一行的用户输入

How can I accept user input differently from the same line in C++?

本文关键字:一行 输入 用户 C++ 不同于 何接受      更新时间:2023-10-16

我的介绍C++类有一个任务,让用户选择C、D或E来分别处理支票、存入支票或结束程序。教授明确表示,如果用户选择C或D,他希望接受同一行中的选择和金额。例如,如果用户想存入20美元的支票,他们会在一行中输入"D20"。我把它设置成这样:

cout << "Enter the beginning balance:nn";
cin >> balance;
cout << "Commands:n";
cout << "C - process a checkn";
cout << "D - process a depositn";
cout << "E - end the programnn";
while (choice != 'E')
{
cout << "Enter a transaction:n";
cin >> choice >> amount;

然后是switch语句。当输入C或D时,代码本身可以正常工作,但当我输入E结束程序时,只有在末尾添加一个数字时,它才会工作,因为要求输入的行需要一个char和一个float。然而,在我的教授展示的示例输出中,你只需输入E,它就会终止。有办法解决这个问题吗?我如何设置它,使它接受不同于C和D的E?

编辑:这是切换语句:

switch(choice)
{
case 'C':cout << fixed << setprecision(2);
cout << "Processing check for $" << amount << endl;
balance = processCheck(amount, balance);
cout << "Balance: $" << balance << endl;
break;
case 'D':cout << fixed << setprecision(2);
cout << "Processing deposit for $" << amount << endl;
balance = depositCheck(amount, balance);
cout << "Balance: $" << balance << endl;
break;
case 'E':cout << "Processing end of monthn";
cout << "Final balance: $" << balance << endl;
break;
default : cout << "Invalid choicen";
}

已经在评论中回答了,但无论如何:

更换此代码

cin >> choice >> amount;

通过渐变和条件输入代码:

cin >> choice;
if (choice == 'C' || choice == 'D')
cin >> amount;