Вы знаете, сколько слов вы будете читать? Если нет, вам нужно будет увеличивать массив по мере того, как вы будете читать все больше и больше слов. Самый простой способ сделать это - использовать стандартный контейнер, который сделает это за вас: std::vector
. Читать слова, разделенные пробелом, легко, так как это стандартное поведение std::ifstream::operator>>
. Удаление знаков препинания требует дополнительной работы, поэтому мы вернемся к этому позже.
Основной рабочий процесс для чтения слов из файла выглядит следующим образом:
#include <fstream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> words;
std::string w;
std::ifstream file("words.txt"); // opens the file for reading
while (file >> w) // read one word from the file, stops at end-of-file
{
// do some work here to remove punctuation marks
words.push_back(w);
}
return 0;
}
Предполагая, что вы делаете здесь домашнее задание, реальный ключ заключается в том, чтобы узнать, как убрать знаки препинания с w
перед добавлением его в вектор. Я хотел бы изучить следующие концепции, чтобы помочь вам:
Не стесняйтесь задавать дополнительные вопросы, если у вас возникли проблемы.