所以我遇到了以下问题。我的目标是创建一个循环,不断地接受用户输入,直到用户没有在“cin >>”中输入任何内容,将该行留空,然后简单地按下 ENTER 键继续前进,此时程序应该跳出循环并继续执行程序的其余部分。像这样的东西:
do {
cout << "\nEnter a name: ";
cin >> input1;
if (input1.empty())
{
break;
}
else
{
user_name = input1;
}
} while (!input1.empty());
如您所见,我已经尝试过使用 empty() 函数,但这不起作用,程序只是停留在循环中并且不会中断,无论我按了多少次 Enter。它只是不断提示我输入一个名字。我也尝试过使用类似的东西
if (input1 == "")
但这也不起作用。任何人都可以帮忙吗?我该如何跳出这个循环?
更新:好的,伙计们,我已经尝试了您的建议,并且成功了!太感谢了!不幸的是,虽然 getline 函数有效,但它也给我带来了一个新问题。基本上,在第一个初始循环中,程序提示输入一个名字,我输入一个名字,名字存储在 user_name 中。然而,在第二个循环中,程序甚至没有给我输入任何输入的机会,它只是打印“输入名称:”,然后立即退出循环,继续执行程序的其余部分. 为什么会这样?