Привет Я работаю над школьным проектом, чтобы читать текст из файла, а затем манипулировать им, чтобы результат был другим. Во всяком случае, когда я пытаюсь использовать функцию 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;
}
Вам необходимо разобраться в ваших операторах адреса ('&') и разыменования ('*'). Вам также нужно подумать о том, что произойдет, если вы * не * инициализируете 'adr'. И как вызвать функции-члены. –