首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中接受不同于同一行的用户输入?

问如何在C++中接受不同于同一行的用户输入?
EN

Stack Overflow用户
提问于 2020-02-24 06:07:53
回答 1查看 82关注 0票数 2

我为我的入门C++类分配了一个任务,让用户选择C、D或E来处理支票、存入支票或结束程序。这位教授指出,如果用户选择C或D,他希望在同一行中同时接受选择和金额。例如,如果用户想存入一张20美元的支票,他们可以在一行中输入“D20”。我将其设置为:

代码语言:javascript
复制
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语句:

代码语言:javascript
复制
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";
}
EN

回答 1

Stack Overflow用户

发布于 2020-02-24 07:14:41

我已经在评论中回答了,但不管怎样:

替换此代码

代码语言:javascript
复制
cin >> choice >> amount;

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

代码语言:javascript
复制
cin >> choice;
if (choice == 'C' || choice == 'D')
    cin >> amount;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60367335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档