我是 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/