Чтение файла только с буквенными буквами - PullRequest
0 голосов
/ 29 мая 2019

Я застрял на небольшой части задачи, которую пытаюсь выполнить, и каждое слово должно быть обрезано, чтобы слово содержало только буквы алфавита при чтении из файла .txt.Да, это не относится к дереву AVL, но проблема, на мой взгляд, заключается в чтении текстового документа.

Я попробовал ise isalpha, но не могу заставить его работать, и у меня закончились идеи, и я застрял вситуация здесь.Я буду признателен за любую помощь, оказанную мне!

           cout << "Input a file name (dictionary.txt):" << endl;
            cin >> file;
            myfile.open(file);
            if (!myfile) {
                cout << "\nFile does not exist." << endl;
                return 0;
            }
            else cout << "\nDictionary has been loaded." << endl;
            while(!myfile.eof()) {
                myfile >> insert;
                DATA newItem;
                newItem.key = insert;
                tree.AVL_Insert(newItem);
                count++;
            }

1 Ответ

0 голосов
/ 29 мая 2019

Библиотека алгоритмов облегчает это:

#include <iostream>
#include <string>
#include <algorithm>

int main ()
{
    std::string s = "A1B2C3";
    s.erase (std::remove_if (s.begin (), s.end (), [] (auto c) { return !std::isalpha ((unsigned char) c); }), s.end ());
    std::cout << s;
}

Выход:

ABC

Живая демоверсия

См. Также стереть удалить идиома

...