Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - uNolex1

#1
Ya me resulto muchas gracias por la ayuda! de verdad me ha sido de mucha utilidad ;-)
#2
No es necesario el scanf eso lo escribo al ejecutar el programa, que tiene esta forma:

=~=~=~=~= Menu =~=~=~=~=
1: Abrir Cibercafe
2: Instalar Computador
3: Cerrar Cibercafe
4: Desechar Computador
5: Listar Cibercafes
6: Listar Computadores
7: Asignar Computador
8: Desocupar Computador
9: Guardar
11: Salir
=~=~=~=~==~=~=~=~==~=~=~=~=
Ingrese Opcion:

Entonces para probar la opcion guardar abro un ciber (le asigno sus respectivos datos), luego instalo un computador en tal ciber(tambien le asigno sus datos), todos los datos los asigno cuando ejecuto el programa pero cuando doy a la opción guardar me los guarda pero queda atascado en el primer while de la funcion Guardar() ya no me da error de segmento  :-\
#3
Tengo esto pero me tira error de segmento :/ No se si estoy bien encaminado  :o


void Guardar(){
struct computador *auxiliar_contador_pc;
   struct cibercafe *auxiliar_contador_ciber;
   int cant_pc=0;
int cant_servidor=0;
   auxiliar_contador_ciber=primero;
FILE *arch;
arch=fopen("cibercafes", "a");
while(auxiliar_contador_ciber !=NULL){
       fputs("&&", arch);
fprintf(arch, "%d",auxiliar_contador_ciber->id_ciber);
fputs("&&", arch);
fprintf(arch, "%s",auxiliar_contador_ciber->direccion);
fputs("&&", arch);
fprintf(arch, "%d",auxiliar_contador_ciber->precio);
fputs("&&", arch);
fprintf(arch, "%d",auxiliar_contador_ciber->recaudado);
       fputs("\n", arch);
       auxiliar_contador_pc=auxiliar_contador_ciber -> primer_pc;
       while(auxiliar_contador_pc->siguiente_pc!=NULL){
           auxiliar_contador_pc=auxiliar_contador_pc -> siguiente_pc;
           fputs("@@", arch);
           fprintf(arch, "%d",auxiliar_contador_pc->num_pc);
           fputs("@@", arch);
           fprintf(arch, "%s",auxiliar_contador_pc->sistema_operativo);
           fputs("@@", arch);
           fprintf(arch, "%d",auxiliar_contador_pc->espacio_almacenamiento);
           fputs("@@", arch);
           fprintf(arch, "%d",auxiliar_contador_pc->disponible);
           fputs("@@", arch);
           fprintf(arch, "%d",auxiliar_contador_pc->tipo);
           fputs("@@", arch);
           fprintf(arch, "%d",auxiliar_contador_pc->num_conexiones);
           fputs("@@", arch);
           }
       
  fclose(arch);
  arch=fopen("cibercafes", "a");
   }
fclose(arch);
return;
}


Los && y @@ son mis "separadores" para saber que despues de && son datos de ciber y @@ son de PC
#4
Edit: ese código era obsoleto por eso lo borre
#5
He intentado hacer mi función guardar pero no me guarda lo que quiero guardar, por ejemplo en mi programa puedo crear cibercafes con una dirección un precio (por min de internet), etc mi funcion de prueba seria esta para guardar en un archivo "cibercafes" solo la dirección de un cibercafe creado
void Guardar(){
struct cibercafe *cib;
cib=(struct cibercafe *) malloc (sizeof(struct cibercafe));
FILE *arch;
scanf("%s",cib->direccion);
arch=fopen("cibercafes", "a");
fprintf(arch,"Dirección: %s\n",cib->direccion);
fclose(arch);
}


pero cuando llamo a la función guardar en el archivo aparece solo "Dirección:" y no el nombre que le puse  :-\

Edit: ya vi el problema le estoy pidiendo al usuario que ingrese los datos, como hago para que los datos que  están se guarden automáticamente mientras el programa esta corriendo?

#6
Saludos! quisiera saber como guardar estructuras en un archivo de texto plano, para luego cargarlas al momento que se ejecute mi programa y que este archivo se vaya sobrescribiendo en base a lo que modifique en mi programa. De antemano muchas gracias ;D