这是我第一次发布一个问题,所以我希望我得到这个权利。无论如何,我试图创建一个程序,要求用户输入一个字符串,计算字母的类型和数量,然后输出字母的频率。到目前为止,即使得到正确的输入,我也有一个错误,只是无法弄清楚问题所在。我的(相关)的代码是:初学者错误“getline”
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
string getPhrase(const string & phrase); //Function for gathering string input
int main()
{
const string phrase;
getPhrase(phrase);
...
}
string getPhrase(const string &phrase)
{
cout<<"Enter phrase: "
getline(cin, phrase);
return (phrase);
}
当我运行,这我得到的错误:
freq.cpp: In function ‘std::string getPhrase(const std::string&)’:
freq.cpp:21: error: no matching function for call to ‘getline(std::istream&, const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
我不知道我做错了,并且似乎无法找到任何与我在做什么相关的在线内容。
你是什么原因让'phrase'成为'const'变量?我想知道,所以我们可以帮助你理解为什么它是错的。 :) – 2013-04-09 22:42:01
如果你是初学者,你绝对应该学习21世纪的C++,永远不要说'滥用名字空间std;'。上世纪80年代,伪造的伪教授提出了这个问题,但这并不意味着这是可以接受的。 – 2013-04-09 22:42:06
@sftrabbit它是我的介绍C++类提供给我的模板哈哈,我删除了“const”部分,并在某些地方使用了一些“std ::”,如下面的建议和它的最终工作 – user2250690 2013-04-09 22:55:19