Суть вот в чем. Написал код который генерирует пароли в файлы по заданному количеству. Если устанавливаю количество символо 8 или меньше, код отрабатывает на ура, а вот если 9 и более, то программа завершается быстро и не создает файл с паролями. ОС ubuntu 18
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
const std::string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%-()_+~,.':?=\\/"; // Алфавит символов
const int password_length = 11;
const long long int total_combinations = std::pow(alphabet.length(), password_length);
const int passwords_per_file = 100;
void generate_passwords(const std::string& filename, long long int start_iteration, long long int end_iteration) {
std::ofstream file(filename);
if (!file) {
std::cout << "Не удалось открыть файл " << filename << " для записи паролей." << std::endl;
return;
}
std::string current_password(password_length, alphabet[0]);
long long int current_iteration = 0;
while (current_iteration <= end_iteration) {
if (current_iteration >= start_iteration) {
file << current_password << '\n';
}
// Увеличение пароля на 1
for (int i = password_length - 1; i >= 0; i--) {
current_password[i] = alphabet[(alphabet.find(current_password[i]) + 1) % alphabet.length()];
if (current_password[i] != alphabet[0]) {
break;
}
}
current_iteration++;
}
file.close();
}
int main() {
long long int start_iteration = 0; // Начальная итерация
long long int end_iteration = total_combinations - 1; // Конечная итерация
int num_files = static_cast<int>(std::ceil(static_cast<double>(end_iteration - start_iteration + 1) / passwords_per_file));
for (int i = 0; i < num_files; i++) {
long long int start = start_iteration + i * passwords_per_file;
long long int end = std::min(start_iteration + (i + 1) * passwords_per_file - 1, end_iteration);
std::string filename = "passwords_" + std::to_string(password_length) + "_" + std::to_string(i) + ".txt";
generate_passwords(filename, start, end);
std::cout << "Создан файл " << filename << std::endl;
}
std::cout << "Генерация паролей завершена." << std::endl;
return 0;
}