Задача:
Я читаю текстовый файл слово за словом и сохраняю каждое слово как элемент массива. Затем я распечатываю этот массив слово за словом. Я знаю, что это можно было бы сделать более эффективно, но это для задания, и я должен использовать массив.
Я делаю больше с массивом, например, подсчитываю повторяющиеся элементы, удаляю определенные элементы и т. д. Я также успешно преобразовал файлы, чтобы они были полностью строчными и без пунктуации.
Текущая ситуация:
У меня есть текстовый файл, который выглядит так:
beginning of file
more lines with some bizzare spacing
some lines next to each other
while
others are farther apart
eof
Вот часть моего кода с itemsInArray
, инициализированным в 0
, и массивом слов, обозначаемым как wordArray[ (approriate length for my file ) ]
:
ifstream infile;
infile.open(fileExample);
while (!infile.eof()) {
string temp;
getline(infile,temp,' '); // Successfully reads words seperated by a single space
if ((temp != "") && (temp != '\n') && (temp != " ") && (temp != "\n") && (temp != "\0") {
wordArray[itemsInArray] = temp;
itemsInArray++;
}
Проблема:
Мой код сохраняет символ конца строки как элемент в моем массиве. В моем выражении if я перечислил все способы, которыми я пытался скрыть символ конца строки, но мне не повезло.
Как я могу предотвратить сохранение символа конца строки как элемента в моем массиве?
Я пробовал несколько других методов, которые я нашел в потоках, подобных этому, в том числе что-то с *const char
, которое я не мог заставить работать, а также повторение и удаление новых символов строки. Я работаю над этим часами, я не хочу повторно публиковать ту же проблему и пробовал много разных методов.