【发布时间】:2015-07-08 06:02:10
【问题描述】:
我正在尝试打印输入,直到用户提供空白输入。所以,我使用了 getline(cin,input)。但是,当我使用 getline(cin,input)。它在给出输出时跳过了第一个输入。
#include <iostream>
using namespace std;
int main() {
while(1)
{
string n;
getline(cin, n);
while(getline(cin,n) && !n.empty())
{
cout<<n<<endl;;
}
if(n.empty())
break;
}
return 0;
}
样本输入:
12
2
获得的输出:
2
需要输出:
12
2
【问题讨论】:
-
可能连续的
getline调用(循环之前的一个,while 表达式中的一个)与第一次读取消失有关。为什么你认为你根本需要裸电话? (或嵌套循环,就此而言)。 -
预期输出对我来说没有意义,实际输出也是如此。我希望该输入根本没有输出。顺便说一句,证明问题是否需要外部 while 循环?
-
@UlrichEckhardt 检查编辑器内格式。 OP 打算将它们放在不同的行上。
-
是的,@WhozCraig,这解释了很多。为了便于阅读,我冒昧地稍微编辑了一下……