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

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

本文关键字:mismatched types 错误 getline 编译 使用      更新时间:2023-10-16

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

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;
}
错误中的行

与我在这里提出的代码中的行不匹配,因为我不知道在堆栈溢出编辑器中编写代码时如何创建新行;我是新来的;)无论如何,错误指向带有string x声明的行。

基本上,我希望这段代码做的是从用户那里获取一行,直到他/她到达空格。也许我从一开始就做错了什么,所以我愿意接受解决这个问题的建议。(我在C++方面不是很有经验,只是我的老师需要用这种语言完成一项任务。谢谢

安东尼

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

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

试试这个:

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