#include #include #include #include #define FIND_DIR "." // здесь указываем каталог, в котором искать файлы int give_fnn_number(char s[]) { // функция выделяет номер из имени файла auto m = std::__cxx11::cmatch{}; std::__cxx11::string fn_prefix, fn_number, t; // сюда вручную вбить префикс вместо имя, // не разобрался как загнать его в параметры if (std::regex_match(s, m, std::__cxx11::regex{ R"(^(имя)(\d+)$)" })) { fn_prefix = m[1].str(); fn_number = m[2].str(); } else { return -1; } int fnn_number; fnn_number = std::stoi(fn_number); return fnn_number; } int main() { int detected_fn_number = -1; // максимальный обнаруженный номер файла /* Compiling for UNIX / POSIX */ DIR *dir = opendir(FIND_DIR); if(dir) { struct dirent *ent; while((ent = readdir(dir)) != NULL) { int tt = give_fnn_number(ent->d_name); if ( tt > detected_fn_number ) { detected_fn_number = tt; } } } else { fprintf(stderr, "Error opening directory\n"); return 1; } std::cout << "имя" << detected_fn_number+1 << "\n"; return 0; }