c++ - 没有匹配函数调用 "getline"

标签 c++

我是 C++ 编程新手。在教程中,作者提到如果读取字符串中的空格,“cin”会中断。如果你想让程序读入一整行带空格的字符串,你应该使用“getline”函数。

但是,我无法让它工作。

这是我的代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string my_name;

    cout << "Please enter your name: ";
    getline(cin, my_name, "\n");

    cout << "My name is " << my_name << " .";
}

我使用的IDE是Xcode。错误消息是“没有匹配的函数来调用‘getline’”。

我已经搜索过类似的问题,但在我看来没有一个解决方案适用于我的问题。也许我缺少一些知识?谢谢。

最佳答案

complete 错误会告诉您第三个参数的类型错误的原因。

它应该是一个字符类型,而不是一个以空字符结尾的字符串。

getline(cin, my_name, '\n');

编辑:并且,'\n' 特别是getline 的另一种形式的假定分隔符:

getline(cin, my_name);

关于c++ - 没有匹配函数调用 "getline",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930040/

相关文章:

c++ - 使用 Visual Studio 2012 并使用旧平台工具集进行编译?

c++ - 检查输入值是整数类型

c++ - QBS : Module qt/core could not be loaded

c++ - 存储结构 vector 的最佳方法

c++ - 尽管推送成功,但线程池队列未使用推送的项目进行更新

c++ - 无法打印存储在 long long 类型变量中的一些大值

c++ - 环境 PATH 目录迭代

c++ - 当用户输入大量数字时无限循环

c++ - 如果我忽略具有 shared_ptr 返回类型的函数的返回值怎么办

c++ - 从模板基类派生时找不到类型