字符串不适用于#include <string>并使用命名空间std

时间:2018-08-18 14:52:43

标签: c++

关于下面的代码,字符串不再点亮,当我输入“ 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

我可能在错误的地方问,但我不能说出问题所在,请帮忙:(

3 个答案:

答案 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);