我是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'”。
我搜索过类似的问题,但在我看来,没有一个解决方案适用于我的问题。也许我错过了一些知识?谢谢。
答案 0 :(得分:5)
完整错误会告诉您为什么第三个参数类型错误。
它应该是字符类型,而不是以空字符结尾的字符串。
getline(cin, my_name, '\n');
编辑 :并且,'\n'
具体是另一种getline
形式的假定分隔符:
getline(cin, my_name);
答案 1 :(得分:2)
你老师说的不对。 wget -o output.txt --no-check-certificate --user-agent="Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" "http://example.com/page"
不会&#34;打破&#34;。只是将cin
格式化提取设计为逐字阅读。这是故意的。它没有坏掉。
至于您的错误,您对std::string
的调用被破坏,因为定界符参数的类型错误。 std::getline
是'\n'
字面值; char
是一个"\n"
数组文字,根本不是你想要的。
答案 2 :(得分:0)
为我添加这条线
#include <fstream>