使用 getline() 时出现编译错误:'mismatched types'

Compiling error while using getline(): 'mismatched types'

我一直收到这个错误(这是一个很长的错误,但我认为最重要的部分是这个):

main.cpp:9:30: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>' and 'const char [2]'

编译这段代码时:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string x = getline(cin, " ");
    return 0;
}

错误中的行与我在此处提出的代码中的行不匹配,因为我不知道如何在 Stack Overflow 编辑器中编写代码时换行;我是新来的 ;) 无论如何,错误指向带有 string x.

声明的行

基本上我想要这段代码做的是从用户那里得到一行,直到 he/she 命中 space。也许我从一开始就做错了,所以我愿意接受解决这个问题的建议。 (我对 C++ 不是很有经验,只是我的老师要求使用这门语言完成一项任务。)谢谢,

安东尼

std::getline() 的第二个参数是对接受读取数据的 std::string 变量的引用。该字符串未在函数的 return 值中输出。

此外,std::getline() 不接受字符串作为分隔符。它只需要一个字符。

试试这个:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string x;
    getline(cin, x, ' ');
    return 0;
}