Я пытаюсь загрузить строки текстового файла, содержащего словарные слова, в объект массива. Я хочу, чтобы массив содержал все слова, начинающиеся с "а", еще один на "б"... для всех букв алфавита.
Вот класс, который я написал для объекта массива.
#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()
в<stdio.h>
, а не функцию в<istream>
и<string>
. - person André Caron   schedule 15.03.2012