2

生成されたすべてのキーをコンソールに表示する 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;
}
4

2 に答える 2

9

プロの方法:

コードの先頭で以下のコードを使用します

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

別の直感的な方法:

Windows では、C コードをコンパイルすると、.exe ファイル (dummy.exe など) が生成されます。

このexeファイルによって生成された出力を外部のtxtファイル(out.txtとしましょう)に保存するには、CMDを介してそのexeファイルを参照して入力するだけです

dummy.exe > out.txt

チェックする入力がある場合は、使用します

dummy.exe <input.txt> out.txt

于 2014-06-04T04:58:02.593 に答える
3

リダイレクト( windows ) および ( *nix ) を使用して、任意の言語の任意のプログラムからのコンソール出力をテキスト ファイルに送信できます。

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

# or to append
./my_program.a >> my_outfile.txt
于 2014-06-03T13:54:55.533 に答える