【发布时间】:2013-08-04 09:41:38
【问题描述】:
所以我遇到了以下问题。我的目标是创建一个循环,不断地接受用户输入,直到用户没有在“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 中。然而,在第二个循环中,程序甚至没有给我输入任何输入的机会,它只是打印“输入名称:”,然后立即退出循环,继续执行程序的其余部分.为什么会这样?
【问题讨论】:
-
input1有什么类型?标准::字符串?
-
您是否在每个 if 语句之后刷新/清除 input1?如果在第一次运行时直接按回车会发生什么?
标签: c++