为什么要在控制台的第二行输入?
Why should I input on the second line of the console?
为什么我要在控制台的第二行输入一些东西?
int main() {
string s;
while (true) {
cout << "Input: ";
char a = getline(cin, s).get();
cout << a << endl;
}
return 0;
}
因为您从 std::cin
.
阅读了 两次
std::getline
函数 returns 流,然后您在流上调用 get
,这需要您输入其他内容。
And 你显然只需要输入一次是因为你实际上在第二次输入时输入了 三个 个字符:'f'
、'd'
和一个 换行符。所以第一个 get
调用将读取 'f'
。然后下一次迭代 getline
调用将读取 "d\n"
并且 get
调用将读取您编写的下一个输入,依此类推。
简单的解决方案?不要调用 get
:
getline(cin, s);
cout << s << '\n';
为什么我要在控制台的第二行输入一些东西?
int main() {
string s;
while (true) {
cout << "Input: ";
char a = getline(cin, s).get();
cout << a << endl;
}
return 0;
}
因为您从 std::cin
.
std::getline
函数 returns 流,然后您在流上调用 get
,这需要您输入其他内容。
And 你显然只需要输入一次是因为你实际上在第二次输入时输入了 三个 个字符:'f'
、'd'
和一个 换行符。所以第一个 get
调用将读取 'f'
。然后下一次迭代 getline
调用将读取 "d\n"
并且 get
调用将读取您编写的下一个输入,依此类推。
简单的解决方案?不要调用 get
:
getline(cin, s);
cout << s << '\n';