辞書の単語を含むテキストファイルの行を配列オブジェクトにロードしようとしています。 "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関数をオーバーロードするために私を必要だと思うが、それは必要だ、なぜ私は約行く方法はかなり確実ではないですか。
アドバイスはありますか?
「オーバーロードされた関数のインスタンスは、」あなたは間違った引数を持つ関数を呼び出していることを意味しません。 getlineに適切なものを渡していることを確認してください。たとえば、[getline](http://linux.die.net/man/3/getline)には文字列ではなくchar **が必要ですこれはchar *です)。 –
@MarshallConover: ''の 'getline()'関数を参照していますが、 ''と ''の関数ではありません。 –