gpt4 book ai didi

c++ - 无法退出 do-while 循环?

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:34 25 4
gpt4 key购买 nike

我不明白为什么在用户输入 -1 时 do-while 循环没有终止。忽略内部 while 循环之后的所有内容。我知道问题出在 while 循环的某个地方。我只是看不到它。

int main()
{
srand(time(0));
int input;
std::string pass, company, timeS;
do
{
std::cout << "Enter password length: ";
std::cin >> input;
while(input < 8 || input > 16)
{
if(!std::cin)
{
std::cin.clear();
std::cin.ignore(100, '\n');
}

std::cout << "Password length must be between 8 and 16.\nEnter password length: ";
std::cin >> input;
}

std::cout << "Enter company name: ";
std::getline(std::cin, company);

pass = passGen(input);
time_t now = time(0);
auto time = *std::localtime(&now);
std::stringstream ss;
ss << std::put_time(&time, "%Y %b %d %H:%M:%S %a");
timeS = ss.str();
std::cout << "You passoword: " << pass << std::endl;
writeFile(pass, company, timeS);

}while(input != -1);

return 0;
}

提前致谢!

最佳答案

在此循环中,您等待 8 到 16 之间的数字:

while(input < 8 || input > 16)
{
if(!std::cin)
{
std::cin.clear();
std::cin.ignore(100, '\n');
}

std::cout << "Password length must be between 8 and 16.\nEnter password length: ";
std::cin >> input;
}

猜猜,那个循环永远不会出现什么?对,-1 !! =)

关于c++ - 无法退出 do-while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com