Je suis un noob complet à c. J'ai téléchargé un code sur internet. Il génère toutes les combinaisons possibles de caractères. Je veux transférer cette sortie dans un fichier texte. J'ai essayé peu de choses mais je suis incapable de le faire. Quelqu'un peut-il me suggérer les changements nécessaires? Voici le code.atransfert de sortie vers un nouveau fichier
EDIT: J'ai changé la commande put en fputs. j'ai essayé toutes les combinaisons possibles.fputs (& str [1], f), fputs ("& str [1]", "f"), fputs ("& str [1]", f) et fputs (& str, "F"). mais rien n'a fonctionné. que faire ensuite?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MINCHAR 33
#define MAXCHAR 126
char *bruteforce(int passlen, int *ntries);
int main(void) {
int i, wdlen, counter;
char *str;
clock_t start, end;
double elapsed;
FILE *myfile;
myfile = fopen("ranjit.txt","w");
do {
printf("Word length... ");
scanf("%d", &wdlen);
} while(wdlen<2);
start = clock();
bruteforce(wdlen, &counter);
end = clock();
elapsed = ((double) (end - start))/CLOCKS_PER_SEC;
fprintf(myfile,"\nNum of tries... %d \n",counter);
fprintf(myfile,"\nTime elapsed... %f seconds\n",elapsed);
return counter;
}
char *bruteforce(int passlen, int *ntries) {
int i;
char *str;
FILE *f;
f = fopen("sandip.txt","w");
*ntries=0;
passlen++;
str = (char*)malloc(passlen*sizeof(char));
for(i=0; i<passlen; i++) {
str[i]=MINCHAR;
}
str[passlen]='\0';
while(str[0]<MINCHAR+1) {
for(i=MINCHAR; i<=MAXCHAR; i++) {
str[passlen-1]=i;
(*ntries)++;
fputs("&str[1]",f);
}
if(str[passlen-1]>=MAXCHAR) {
str[passlen-1]=MINCHAR;
str[passlen-1-1]++;
}
for(i=passlen-1-1; i>=0; i--) {
if(str[i]>MAXCHAR) {
str[i]=MINCHAR;
str[i-1]++;
}
}
}
return NULL;
}
En utilisant GNU/Linux ou un autre système compatible POSIX? Ensuite, le moyen le plus simple est de rediriger la sortie vers un fichier, comme ./votre programme> outfile.txt .. Cela devrait également être possible à partir de Windows, mais je ne sais pas comment. – Johan
@Johan, cela fonctionne sur les fenêtres exactement de la même manière –
merci pour la suggestion des gars, mais cette méthode ne fonctionnera pas pour moi. – user427685