我用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("%sn", 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;
}
专业:
在代码的开头使用下面的代码
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
您可以使用重定向 (windows)和(*nix)将控制台输出从任何语言的任何程序发送到文本文件:
# to overwrite an existing file:
./my_program.a > my_outfile.txt
# or to append
./my_program.a >> my_outfile.txt