您好我正在研究一个学校项目,从文件中读取文本,然后对其进行操作,以使输出不同。无论如何,当我尝试使用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;
}
答案 0 :(得分:1)
使用getline(*adr,aLine);
而不是getline(&adr,aLine)
因为getline不能接受对变量或文件的引用作为其参数。