Я хочу прочитать файлы из текстового файла и сравнить некоторые строки с регулярным выражением.Первая строка txt-файла должна начинаться со строки #FIRST.И если строка должна начинаться с символа «#», строка должна игнорироваться, и она должна продолжаться.Таким образом, счетчик должен иметь значение 1, которое он делает, и он должен переходить ко второму оператору if if (counter == 1).Однако он не переходит ко второму оператору if.
txt файл:
#FIRST
#
#haha
Я ожидаю, что вывод будет хорошим \ nхорошо после однократного запуска кода.
Вывод:
good.
И это должно быть
good.
good.
.........
#include <iostream>
#include <string>
#include <vector>
#include <regex>
#include <fstream>
#include <sstream>
int main() {
std::ifstream input("test.txt");
std::regex e("#FIRST");
std::regex b("haha");
int counter;
for (counter = 0; !input.eof(); counter++) {
std::cout << counter << "\n";
std::string line;
if (counter == 0) {
getline(input, line);
if (std::regex_match(line, e)) {
std::cout << "good." << std::endl;
counter++;
} else
std::cout << "bad." << std::endl;
break;
}
getline(input, line);
if (line[0] == '#')
continue;
if (counter == 1) {
getline(input, line);
if (std::regex_match(line, b)) {
std::cout << "good." << std::endl;
} else
std::cout << "bad." << std::endl;
break;
}
}
return 0;
}