繁体   English   中英

如何在 C++ 中以不同的方式接受来自同一行的用户输入?

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

我的 C++ 介绍类有一个任务,让用户选择 C、D 或 E 来分别处理支票、存入支票或结束程序。 教授指定,如果用户选择 C ​​或 D,他希望在同一行中同时接受选择和金额。 例如,如果用户想存入一张 20 美元的支票,他们将在一行中输入“D 20”。 我是这样设置的:

cout << "Enter the beginning balance:\n\n";
cin >> balance;

cout << "Commands:\n";
cout << "C - process a check\n";
cout << "D - process a deposit\n";
cout << "E - end the program\n\n";

while (choice != 'E')
{
    cout << "Enter a transaction:\n";
    cin >> choice >> amount;

后面跟着一个switch语句。 代码本身在输入 C 或 D 时可以正常工作,但是当我输入 E 结束程序时,只有在最后添加一个数字才能工作,因为要求输入的行需要一个字符和一个浮点数。 但是,在我的教授展示的示例输出中,您只需输入 E 即可终止。 有没有办法解决? 我如何设置它以使其接受与 C 和 D 不同的 E?

编辑:这是 switch 语句:

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 month\n";
             cout << "Final balance: $" << balance << endl;
             break;
    default : cout << "Invalid choice\n";
}

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

替换此代码

cin >> choice >> amount;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM