사전 단어가 들어있는 텍스트 파일의 행을 배열 객체에로드하려고합니다. 배열에 "a"로 시작하는 단어, "b"로 시작하는 단어, 알파벳의 모든 문자를 포함하는 배열이 필요합니다.클래스 내에서 fstream getline() 함수 사용
다음은 배열 객체에 대해 작성한 클래스입니다.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class ArrayObj
{
private:
string *list;
int size;
public:
~ArrayObj(){ delete list;}
void loadArray(string fileName, string letter)
{
ifstream myFile;
string str = "";
myFile.open(fileName);
size = 0;
while(!myFile.eof())
{
myFile.getline(str, 100);
if (str.at(0) == letter.at(0))
size++;
}
size -= 1;
list = new string[size];
int i = 0;
while(!myFile.eof())
{
myFile.getline(str, 100);
if(str.at(0) == letter.at(0))
{
list[i] = str;
i++;
}
}
myFile.close();
}
};
내가 말하는 오류 받고 있어요 :
2 IntelliSense: no instance of overloaded function "std::basic_ifstream<_Elem, _Traits>::getline [with _Elem=char, _Traits=std::char_traits<char>]" matches the argument list d:\champlain\spring 2012\algorithms and data structures\weeks 8-10\map2\arrayobj.h 39
나는의 getline 함수를 오버로드 나를 필요로하는 추측을,하지만 난에 대해 또는 왜 필요의 이동하는 방법을 아주 확실하지 않다.
어떤 조언이 필요합니까?
http://en.cppreference.com/w/cpp/container/vector
는 "오버로드 기능의 어떤 인스턴스는"잘못된 인수 함수를 호출하고 있음을 의미합니다. getline에 올바른 것을 전달하는지 확인하십시오. 예를 들어, [getline] (http://linux.die.net/man/3/getline)에는 char **이 필요합니다. char *입니다). –@MarshallConover :''의'getline()'함수는''과''의 함수가 아닙니다. –