#include <string>
#include <regex>
#include <iostream>
#include <dirent.h>
#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;
}
Comments
0 B
|👍
/👎