没有用于调用getline的匹配函数

时间:2015-02-01 17:33:49

标签: c++ getline

您好我正在研究一个学校项目,从文件中读取文本,然后对其进行操作,以使输出不同。无论如何,当我尝试使用getline函数时,我得到了一个"没有匹配的getline函数"。我不明白为什么因为我似乎使用了正确的参数来完成这个功能。任何想法为什么这不起作用?

#include <iostream>
#include <string>
#include <fstream>
#include <cctype>
#include <algorithm>
using namespace std;

bool isaNoun( const string& noun );

bool isanArticle( string value, string * container, int size);

int main(int argc, char * argv[])
{    
    char vowels[]={'a','e','i','o','u', 'A', 'E', 'I', 'O', 'U'};

    string articles[]={ "a", "A", "an", "An", "aN","AN", "the", "The", "tHe", "thE", "THe", "tHE", "THE"};
    int stringsize=sizeof(articles)/sizeof(articles[0]);// determine size of array
    istream *adr;//location of file to be read.
    string adjective=argv[1];
    cout<<adjective;
    ifstream infile;

    if (argc<=2)
        cout<<"Not enough arguments given"<<endl;
    else if(argc==3)//this is where the magic happens.
    {
        infile.open(argv[2]);

    }
    if (infile.is_open())
        adr=&infile;
    string aLine;
    getline(&adr, aLine);
    if(adr->good)
        cout<<oLine<<endl;

    return 0;
}
//function to check if input is a noun
bool isaNoun( const string& noun){

    return isalpha(noun[0]);
}

bool isanArticle( string value, string * container, int size)
{

    for(int i=0; i<size;i++)
    {
        if (value==container[i])
        {
            return true;
        }
        cout<<i<<endl;
    }    
    return false;
}

1 个答案:

答案 0 :(得分:1)

使用getline(*adr,aLine); 而不是getline(&adr,aLine) 因为getline不能接受对变量或文件的引用作为其参数。