Как записать вывод консоли в текстовый файл

У меня есть этот алгоритм генерации ключей, сделанный на C, который будет отображать все сгенерированные ключи в консоли:

Так как же сохранить все ключи, записанные на консоли, в текстовый файл?

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

static const char alphabet[] = "abcdefghijklmnopqrs";               
static const int alphabet_size = sizeof(alphabet) - 1;

void brute_impl(char * str, int index, int max_depth)
{
    int i;
    for (i = 0; i < alphabet_size; ++i)
    {
        str[index] = alphabet[i];

        if (index == max_depth - 1)
        {   
            printf("%s\n", str); // put check() here instead                     
        }
        else
        {
            brute_impl(str, index + 1, max_depth);
        }
    }
}

void brute_sequential(int max_len)
{
    char * buf = malloc(max_len + 1);
    int i;

    for (i = 8; i <= max_len; ++i)
    {
    memset(buf, 0, max_len + 1);
    brute_impl(buf, 0, i);
    }
    free(buf);
}

int main(void)
{
    brute_sequential(8);
    return 0;
}

2 ответа

Профессиональный путь:

Используйте приведенный ниже код в начале вашего кода

freopen("output.txt","w",stdout);

Еще один интуитивно понятный способ:

В Windows после компиляции кода на C он сгенерирует файл.exe (скажем, это dummy.exe).

Теперь, чтобы сохранить результат, полученный этим exe-файлом, во внешний txt-файл (скажем, это out.txt), все, что вам нужно сделать, - это просмотреть этот exe-файл через CMD и набрать

dummy.exe > out.txt

и если у вас есть какие-либо входные данные для проверки, используйте

dummy.exe <input.txt> out.txt

Вы можете использовать перенаправление ( windows) и ( * nix) для отправки вывода консоли из любой программы на любом языке в текстовый файл:

# to overwrite an existing file:
./my_program.a > my_outfile.txt

# or to append
./my_program.a >> my_outfile.txt
Другие вопросы по тегам