【发布时间】:2020-05-06 19:17:29
【问题描述】:
所以基本上我是在制作一个聊天应用程序,然后我遇到了一个我无法修复的错误。为了不泄露我的源代码,这里有一个例子:
#include<iostream>
using namespace std;
int main()
{
while (true) {
string lol;
cout << "you say >> ";
cin >> lol;
}
return 0;
}
所以错误是当您在 cin 中键入空格时 你输入:“嗨,哈哈”它会打印“你说>>” 两次和更多的空间你 把更多的“你说>>”重复我真的不明白为什么会这样。有人能帮我吗?
【问题讨论】:
-
cin >> lol正在跳过所有空格,比较 en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt。 -
那么,基本上,您是否看过 this question,它解释了如何处理
cin()中的空白? -
仅供参考,您在 while 循环的顶部声明了一个新的字符串实例,并且不会每次都打印
lol的值。 -
谢谢我修好了:
#include<iostream> using namespace std; int main() { while (true) { static char lol[128]; cout << "you say >> "; cin.getline(lol,256); cout << lol << endl;; } return 0; }
标签: c++ while-loop cout