You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++简易ATM系统循环与数组问题:账户输入功能实现求助

修正C++简易ATM系统的账户输入逻辑

你的代码存在两个核心问题:

  • 多层嵌套循环逻辑错误:你用了三层嵌套for循环,这会导致输入流程完全混乱,每个账户的三个字段应该在同一个循环迭代内完成,而非嵌套遍历数组。
  • 输入缓冲区残留换行符:用cin >>读取整数后,输入缓冲区里会留下换行符,后续的getline会直接读取这个空行,导致账户名输入被跳过。

以下是修正后的完整代码:

#include <iostream>
#include <string>
#include <limits>
using namespace std;

int main() {
    const int ACCOUNT_COUNT = 2;
    int AccNum[ACCOUNT_COUNT];
    string AccName[ACCOUNT_COUNT];
    float AccBal[ACCOUNT_COUNT];

    cout << "********** ENTER ACCOUNT **********" << endl;
    
    for(int i = 0; i < ACCOUNT_COUNT; i++){
        cout << "Enter Account number: ";
        cin >> AccNum[i];
        
        // 清空输入缓冲区的换行符,避免影响后续getline
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        
        cout << "Enter Account Name: ";
        getline(cin, AccName[i]);
        
        cout << "Enter Amount: ";
        cin >> AccBal[i];
        
        // 输入完一个账户后换行分隔,提升可读性
        cout << endl;
    }

    // 展示所有账户信息
    cout << "\n********** THE ACCOUNTS ARE **********" << endl;
    for(int i = 0; i < ACCOUNT_COUNT; i++){
        cout << "Account number: " << AccNum[i] << endl;
        cout << "Account name: " << AccName[i] << endl;
        cout << "Balance: " << AccBal[i] << endl;
        // 账户间添加分隔线
        if(i != ACCOUNT_COUNT - 1){
            cout << "--------------------------------------" << endl;
        }
    }

    return 0;
}

关键修正点说明

  • 用单层循环处理每个账户,确保每个账户的三个字段依次输入。
  • 使用cin.ignore(numeric_limits<streamsize>::max(), '\n')清空输入缓冲区的换行符,需包含<limits>头文件来使用numeric_limits。
  • 添加了账户信息展示模块,按照要求的格式输出所有账户数据。

输入输出示例

输入流程:

********** ENTER ACCOUNT **********
Enter Account number: 1231232
Enter Account Name: James white
Enter Amount: 1000

Enter Account number: 456456
Enter Account Name: Lily Brown
Enter Amount: 2500

输出结果:

********** THE ACCOUNTS ARE **********
Account number: 1231232
Account name: James white
Balance: 1000
--------------------------------------
Account number: 456456
Account name: Lily Brown
Balance: 2500

内容的提问来源于stack exchange,提问作者Punkkkk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:55:18