程序跳过while循环
Program skipping a while loop
我目前有问题与我的循环。该程序首先要求用户输入他的用户名和密码,然后进入一个循环,其中它将输入的用户名和密码与数据库中的数据进行比较。但是程序只是跳过while循环,继续执行下一条语句。
下面是我的代码:string user,pass,access,power , euser, epass;
char ast=' ';
int aste = 0;
ifstream account;
account.open("Account.txt");
cout<<"Username: ";cin.ignore();getline(cin,euser);
for(int i=0;i<euser.length();i++)
{
euser[i] = toupper(euser[i]);
}
cout<<"Password: ";
do
{
ast = getch();
if (ast == 13)
{
break;
}
if(epass.size() < 10)
{
if(ast != 8)
{
cout<<"*";
epass+=ast;
aste ++;
}
else if(ast == 8 && epass.size() > 0)
{
cout<<"b b";
epass.erase(epass.size()-1);
}
}
else if(epass.size() == 10)
{
if(ast == 8 && epass.size() > 0)
{
cout<<"b b";
epass.erase(epass.size()-1);
}
else
{
cout<<"";
}
}
}while(ast!=13);
while(account>>user>>pass>>access>>power) // problem loop
{
cout<<"hi"<<endl;
if(euser==user && epass==pass)
{
system("cls");
cout<<"Welcome "<<power<<" "<<user;
break;
}
else
{
cout<<"nnIncorrect username or password. Try again";
break;
}
system("pause");
}
account.close();
system("pause");
将代码分解,以便于调试和查看发生了什么:
account >> user;
cout << "user:" << user;
account >> pass;
cout << "pass:" << pass;
account >> access;
cout << "access:" << access;
account >> power;
cout << "power:" << power;
bool b = (bool) account;
while(b)
{
cout<<"hi"<<endl;
if(euser==user && epass==pass)
{
system("cls");
cout<<"Welcome "<<power<<" "<<user;
break;
}
else
{
cout<<"nnIncorrect username or password. Try again";
break;
}
system("pause");
account >> user;
cout << "user:" << user;
account >> pass;
cout << "pass:" << pass;
account >> access;
cout << "access:" << access;
account >> power;
cout << "power:" << power;
b = (bool) account;
}
注意,我并不是说这是很好的代码,只是说它可以帮助你看到发生了什么,并解决你的问题。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 输入循环 while 函数
- c++中的循环(while)
- 为什么这段代码没有循环(while)