关于下面的代码,字符串不再点亮,当我输入“ John Smith”时,仅出现“ John”,字符串对我来说工作正常,直到几周前我尝试今天无法使用strings函数所以我测试了一个简单的。
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string name;
// Get the user's name
cout << "Please enter your first name: ";
cin >> name;
// Print the greeting
cout << "Hello, " << name << "." << endl;
return 0;
}
string doesn't light up like int
我可能在错误的地方问,但我不能说出问题所在,请帮忙:(
答案 0 :(得分:0)
使用std::string
时,使用std::cin >> someString
只会从缓冲区中读取第一个单词(它将在遇到的第一个空白处停止)。
改为使用getline(std::cin, someString)
读取整行。
答案 1 :(得分:0)
要获取所有内容,请使用getline(cin, name);
代替cin >> name;
请参见http://www.cplusplus.com/reference/string/string/getline/
答案 2 :(得分:-2)
std :: cin仅将字符转换为第一个“白色”字符,例如空格,制表符或Enter。
如果您想阅读整行内容,请使用getline()
string line;
cin.clear(); //to make sure we have no pending characters in input buffer
getline(cin, line);