Как проверить последовательность символов в текстовом файле с помощью C ++? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть файл .txt, который содержит непрерывную последовательность символов (без пробелов).Я хотел найти последовательность символов в файле .txt, и у меня возникли проблемы с этим.

ifstream fin;
    fin.open("sample.txt");
    while (!fin.eof())
    {
        ch = getchar();
        if (ch == 'p' && ch + 1 == 'o' && ch + 2 == 'w')
            std::cout << "Sequence found" << "\n";
    }
    fin.close();

1 Ответ

0 голосов
/ 22 февраля 2019

Это не сработает, ch - это символ, который вы прочитали, но ch + 1 - это не следующий символ (который вы еще не прочитали).Это просто ch увеличилось на 1, так что это следующая буква в алфавите, цифра на один больше и т. Д. В зависимости от того, что в любом случае ch.

Если вы просто хотите увидеть,последовательность находится в файле, тогда я прочитал бы в файле std::string как этот ответ говорит:

std::string slurp(std::ifstream& in) {
    std::stringstream sstr;
    sstr << in.rdbuf();
    return sstr.str();
}

Таким образом, вы передаете эту функцию вашему fin, и вы получаетестрока, содержащая содержимое вашего файла.Затем вы пытаетесь найти свою последовательность, как этот ответ объясняет:

if (myString.find("pow") != std::string::npos) {
    std::cout << "found!" << '\n';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...