保持循环直到用户输入空白行?

Gri*_*han 3 c++

所以我遇到了以下问题.我的目标是创建一个循环,一直持续用户输入,直到用户没有输入任何内容为'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循环中,程序甚至没有给我输入任何输入的机会,它只是打印"输入名称:",然后立即退出循环,继续执行其余的程序.为什么会这样?

P0W*_*P0W 7

使用这个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)