c++ - (C++) 输入字符导致无限循环
问题描述
#include <iostream>
int idarr[200];
char namearr[200];
int moneyarr[200];
int j=0;
int state(void)
{
int n;
std::cout << "----Menu---- \n" << "1. create \n" << "2. deposit \n" << "3. withdraw \n" << "4. print all accounts \n" << "5. end the program" << std::endl;
std::cout << "choose : ";
std::cin >> n;
return n;
}
void create(void)
{
int id, money;
char name;
std::cout << "[create new account]" << std::endl;
std::cout << "ID : ";
std::cin >> id;
std::cout << "name : ";
std::cin >> name;
std::cout << "first deposit money : ";
std::cin >> money;
idarr[j] = id;
namearr[j] = name;
moneyarr[j] = money;
j++;
}
int main(void)
{
int num = 0;
for (int i = 0; ; i++)
{
num = state();
if (num == 1)
create();
if (num == 2)
in();
if (num == 3)
out();
if (num == 4)
printall();
if (num == 5)
return 0;
}
}
我编写了有关创建用户帐户的代码并将其存储在数组中。type 1:创建账户 type 2:存款 type 3:取款 type 4:打印存储在数组中的所有账户 type 5:结束程序
但是,当我输入 1 并尝试输入类型为字符的“名称”时,它会返回函数“状态()”的无限循环。我的代码有什么问题?仅当我选择 1 并键入名称时才会发生。在其他情况下,例如 2~5,代码可以正常工作。谢谢您的回答。
解决方案
推荐阅读
- pine-script - 如何让标签不重叠,就像右边的指标名称标签一样?
- javascript - 反应原生:有办法将“列表”参数传递给 screen1 和 screen2 而无需导航到 screen2
- sql - 对 Excel 单元格的 SQL 脚本引用
- javascript - 从自定义元素中移除事件监听器
- javascript - 如何以角度显示 3 个静态列和其余动态列
- java - 在向数据库更新请求后,我无法在页面上获取更新的数据(数据仅在重新启动应用程序后更新)
- https - Debian 服务器上的 wget 得到 302 Found 而 Manjaro 上的 wget 得到 200 OK
- winapi - 仅使用 MB_OK 时 WTSSendMessage 不返回超时
- python - 验证和测试数据的性能差异很大
- java - 减少此特定代码用于斐波那契数的时间的方法?