所以我遇到了以下问题.我的目标是创建一个循环,一直持续用户输入,直到用户没有输入任何内容为'cin >>',将行留空,只需按ENTER键继续前进,此时程序应该打破循环并继续执行其余的程序.像这样的东西:
do {
cout << "\nEnter a name: ";
cin >> input1;
if (input1.empty())
{
break;
}
else
{
user_name = input1;
}
} while (!input1.empty());
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经尝试过使用empty()函数,但这不起作用,程序只是停留在循环中并且不会爆发,无论我按下多少次输入.它只是一直提示我输入一个名字.我也试过用类似的东西
if (input1 == "")
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.有人可以帮忙吗?我如何突破这个循环?
更新:好的伙计们,我已经尝试了你的推荐,并且它有效!非常感谢!不幸的是,尽管getline函数有效,但它也为我创造了一个新问题.基本上,在第一个初始循环中,程序提示输入名称,我输入名称,名称存储在user_name中.但是,在SECOND循环中,程序甚至没有给我输入任何输入的机会,它只是打印"输入名称:",然后立即退出循环,继续执行其余的程序.为什么会这样?
使用这个getline(std::cin, input1):
while (getline(std::cin, input1))
{
if (input1.empty())
break;
username =input1;
std::cout << input1 << std::endl << "Enter Input : ";
}
Run Code Online (Sandbox Code Playgroud)