Каков правильный способ чтения в файле с использованием ifstream()
, а затем хранения каждого слова в массиве символов? Этот массив символов в конечном итоге будет использоваться для ввода текущего слова в хеш-таблицу.Чтение каждого слова из файла в массив символов в C++
Мой код:
int main()
{
int array_size = 4096;
char * filecontents = new char[array_size];
char * word = new char[16];
int position = 0;
ifstream fin("Dict.txt");
if(fin.is_open())
{
cout << "File Opened successfully" << endl;
while(!fin.eof() && position < array_size)
{
fin.get(filecontents[position]);
position++;
}
filecontents[position-1] = '\0';
for(int i = 0; filecontents[i] != '\0'; i++)
{
word[i] = filecontents[i];
//insert into hash table
word[i] = ' ';
}
cout << endl;
}
else
{
cout << "File could not be opened." << endl;
}
system("pause");
return 0;
}
Правильный путь будет читать файл в 'станд :: VECTOR' из' станд :: strings', как это C++ – NathanOliver
Вы ** всегда ** нужно проверить * * после ** чтения, если операция была успешной: перед попыткой прочитать поток не будет знать, что вы собираетесь попробовать, и нет способа определить, будет ли эта попытка успешной. –