Dev - C++ - [AYUDA] Problema auto contador de id archivo

   
Vista:

[AYUDA] Problema auto contador de id archivo

Publicado por Agus (2 intervenciones) el 15/06/2017 21:17:26
Hola buenas tardes. Tengo un problema con esta función, necesitaría que el id se auto sume cada vez que quiera crear un usuario, la función funciona, el problema es que cuando se cierra el programa y se vuelve a abrir el contador vuelve a 0 y no al valor que tenia antes, alguna ayuda? Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#define maxchar 30
 
typedef struct{
int id;
char usuario[maxchar];
char nombre[maxchar];
char apellido[maxchar];
char domicilio[maxchar];
char localidad[maxchar];
int eliminado; // indica 1 o 0 si el cliente fue eliminado
}Cliente;
 
void reg_usuario ()
{
int cont=0;
char control = 's';
FILE* fichero ;
Cliente cl; // creo un nuevo cliente de la estructura cliente
 
fichero=fopen("datos_usuarios","a+b");
if(fichero==NULL)
{
    fichero=fopen("datos_usuarios","a+b");
}
  if(fichero!=NULL)
  {
    printf ("Menu de Ingreso de usuarios\n");
    while(cont<30 && control == 's')
    {
     printf ("generando ID de usuario automaticamente...\n");
     fflush(stdin);
     idaux++;
     cl.id = idaux;
     printf("\nIngrese su usuario: ");
     gets(cl.usuario);
     printf ("\n Ingrese Nombre: ");
     fflush(stdin);
     gets(cl.nombre);
     printf ("\n Ingrese Apellido: ");
     fflush(stdin);
     gets (cl.apellido);
     printf ("\n Ingrese Domicilio: ");
     fflush(stdin);
     gets (cl.domicilio);
     printf ("\n Ingrese Localidad:");
     fflush(stdin);
     gets (cl.localidad);
 
     fwrite (&cl, sizeof (cl), 1, fichero);
     printf ("desea cargar otro usuario? (s/n)");
     fflush(stdin);
     scanf("%c",&control);
     cont ++;
    }
 
    fclose(fichero);
  }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

[AYUDA] Problema auto contador de id archivo

Publicado por agustin (496 intervenciones) el 15/06/2017 22:49:24
Fácil. Abres el atchivo y te colocasal final menos el tamaño de la estructura y lees el último registro del archivo teniendo este el último id. Ya tienes el valor del id así que solo tienes que incrementarlo y tendrás el que sigue. Si el archivo no se puede leer porque no existe o si el tamaño del se chivo es 0 pues inicias el id a 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar