我还没有在这个程序中添加任何功能,只在“1)创建帐户”中添加了一些任务,而在此代码块中,当您在按 Enter 后输入您的名字时,即使在使用 “之后,它也会开始无限循环”打破;“它不会停止。 这是代码
#include <iostream>
#include <stdlib.h>
using namespace std;
int login_as;
int i = 3;
int std_choice;
int std_deposit;
void student() {
char std_name;
int std_age;
int s = 6;
while (s != std_choice) {
cout << "1) Create an account\n2) View balance\n3)Purchase a Book\n4)Rent a Book\n5)Return a book\n6) Login Screen" << endl;
cin >> std_choice;
switch (std_choice)
{
case 1:
cout << "REGISTER!" << endl;
cout << "Enter Name:\n" << endl; //after this line it starts looping and wont break//
cin >> std_name;
cout << "Age: \n" << endl;
cin >> std_age;
cout << "Please deposit 10$ as initial deposit!\n1)Yes\n2)No" << endl;
cout << "curl qreno.de/https://www.google.com" << endl;
cin >> std_deposit;
break;
default:
break;
}
}
}
int main() {
while (i != login_as ){
cout << "Login as:\n1) User\n2) Librarian\n3) Exit" << endl;
cin >> login_as;
student();
}
return 0;
}
我避免询问 chatgpt 或 phind,因为它会直接向我展示解决方案,我希望它从人类的角度来看。 我以为输入后它会一一打印语句
您已使用
char
数据类型将您的姓名存储在 std_name
中(如 中所述)。但是,如果您输入多个字符,cin >> std_name
可能会破坏您的代码(因为您尝试在一个旨在存储单个字符的变量中存储多个字符)。
要解决此问题,请将
std_name
的数据类型更改为 char*
(指向 C 字符串开头的指针)或 std::string
,例如
char* std_name;