Hola a todos
Le estoy dando vueltas a un codigo en C que quiero que escriba combos en un archivo con este formato: aaaaaa:aaaaaa
aaaaab:aaaaab.....
pero en realidad la salida es esta: aaaaaa:aaaaaa
aaaaab:aaaaaa
aaaaac:aaaaaa......
ALguien podria ojear el codigo y darme alguna sugerencia...???
Gracias de antemano.
Código:
/*DICCIONARIO*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int desde;
int hasta;
void calcula (void);
int main()
{
int ndopcion;
printf("\n\n\t\t\t\tMENU\n\n");
printf("\n\t\t1\tNumeroS\n\t\t2\tMayusculaS\n\t\t3\tMinusculaS\n\t\t4\tVaciO\n\t\t5\tVaciO\n");
printf ("\nIntroduza numero de opcion: ");
scanf (" %d" ,&ndopcion);
while(getchar()!='\n');
switch (ndopcion)
{
case 1:
{
desde=48;
hasta=57;
calcula();
}
break;
case 2:
{
desde=65;
hasta=90;
calcula();
}
break;
case 3:
{
desde=97;
hasta=122;
calcula();
}
break;
case 4:
{
}
break;
case 5:
{
}
break;
}
}
void calcula (void)
{
int a, b, c, d, e, f;
char clv[14];
char combo[7];
char nombre[20];
printf("\nIntroduzca nombre del archivo de salida: ");
gets(nombre);
while(getchar()!='\n');
FILE *hoja1;
hoja1 = fopen (nombre , "wt");
if (hoja1 == NULL)
{
printf ("No se ha podido crear el fichero");
}
else
{
for (a=desde; a<= hasta; a++)
{
clv[0] = a;
combo[0]=a;
for (b=desde; b <= hasta; b++)
{
clv[1] = b;
combo[1]=b;
for (c=desde; c<= hasta; c++)
{
clv[2] = c;
combo[2]=c;
for (d=desde; d<= hasta; d++)
{
clv[3] = d;
combo[3]=d;
for (e=desde; e<=hasta; e++)
{
clv[4] = e;
combo[4]=e;
for (f=desde; f<= hasta; f++)
{
clv[5] = f;
combo[5]=f;
clv[6]=':';
combo[6]='\n';
strcat(clv, combo);
fwrite (clv, sizeof(clv), 1, hoja1);
printf("\n%s",clv);
}
}
}
}
}
}
}
fclose(hoja1);
printf("\n%s", clv);
printf("\nArchivo cerrado\n\n ");
}
P.D: Notese que soy un poco novato.. #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int desde;
int hasta;
void calcula (void);
int main()
{
int ndopcion;
printf("\n\n\t\t\t\tMENU\n\n");
printf("\n\t\t1\tNumeroS\n\t\t2\tMayusculaS\n\t\t3\tMinusculaS\n\t\t4\tVaciO\n\t\t5\tVaciO\n");
printf ("\nIntroduza numero de opcion: ");
scanf (" %d" ,&ndopcion);
while(getchar()!='\n');
switch (ndopcion)
{
case 1:
{
desde=48;
hasta=57;
calcula();
}
break;
case 2:
{
desde=65;
hasta=90;
calcula();
}
break;
case 3:
{
desde=97;
hasta=122;
calcula();
}
break;
case 4:
{
}
break;
case 5:
{
}
break;
}
}
void calcula (void)
{
int a, b, c, d, e, f;
char clv[14];
char combo[7];
char nombre[20];
printf("\nIntroduzca nombre del archivo de salida: ");
gets(nombre);
while(getchar()!='\n');
FILE *hoja1;
hoja1 = fopen (nombre , "wt");
if (hoja1 == NULL)
{
printf ("No se ha podido crear el fichero");
}
else
{
for (a=desde; a<= hasta; a++)
{
clv[0] = a;
combo[0]=a;
for (b=desde; b <= hasta; b++)
{
clv[1] = b;
combo[1]=b;
for (c=desde; c<= hasta; c++)
{
clv[2] = c;
combo[2]=c;
for (d=desde; d<= hasta; d++)
{
clv[3] = d;
combo[3]=d;
for (e=desde; e<=hasta; e++)
{
clv[4] = e;
combo[4]=e;
for (f=desde; f<= hasta; f++)
{
clv[5] = f;
combo[5]=f;
clv[6]=':';
combo[6]='\n';
strcat(clv, combo);
fwrite (clv, sizeof(clv), 1, hoja1);
printf("\n%s",clv);
}
}
}
}
}
}
}
fclose(hoja1);
printf("\n%s", clv);
printf("\nArchivo cerrado\n\n ");
}