SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: incognito en Sábado 20 de Septiembre de 2003, 06:18

Título: Re: ayuda en archivos
Publicado por: incognito en Sábado 20 de Septiembre de 2003, 06:18
Hola Amigos
 tengo un problema con un archivo que maneja cadena de caracteres como campos, en realidad no se que puede ser pero no me graba ciertos datos. por ejemplo, tengo la siguiente rutina:

 // procedimiento de ingreso de datos //
void ingresar()
{
    FILE *fi;
    char rut[10];
    char nombre[30];
    char sexo[9];
    char fnac[10];
    char fing[10];
    char nivel[1];
    int  sala;
    int  nrocama;

    int sw,sex,niv;
    int op;

    clrscr();
    if ((fi=fopen("a:Paciente.dat","a")) == NULL)
   {
     clrscr();
     printf("El archivo no existe ");
     exit(0);
    }
    op=0;
    while (op!=9)
    {
      clrscr();
      gotoxy (20,5);printf ("Rut                             : ");
      gotoxy (20,6);printf ("Nombre                          : ");
      gotoxy (20,7);printf ("Sexo (1=Masculino) (2=femenino) : ");
      gotoxy (20,8);printf ("Fecha Nacimiento                : ");
      gotoxy (20,9);printf ("Fecha Ingreso a hospital        : ");
      gotoxy (20,10);printf("Nro. nivel (1=A 2=B 3=C 4=D)    : ");
      gotoxy (20,11);printf("Nro. de Sala (1 - 10)           : ");
      gotoxy (20,12);printf("Nro. de cama (1 - 5)            : ");
      gotoxy (55,5);scanf("%s",rut);
      gotoxy (55,6);scanf("%s",nombre);
      gotoxy (55,7);scanf("%d",&sex);
      if (sex==1)
   strcpy(sexo,"masculino");
   else
     if (sex==2)
        strcpy(sexo,"femenino ");
      gotoxy (55,8);scanf("%s",fnac);
      gotoxy (55,9);scanf("%s",fing);
      gotoxy (55,10);scanf("%d",&niv);
      if (niv==1)
     strcpy(nivel,"A");
   else
     if (niv==2)
        strcpy(nivel,"B");
       else
         if (niv==3)
       strcpy(nivel,"C");
       else
         if (niv==4)
             strcpy(nivel,"D");

      gotoxy (55,11);scanf("%d",&sala);
      gotoxy (55,12);scanf("%d",&nrocama);

      fflush(stdin);
      fprintf(fi,"%s %s %s %s %s %s %d %d",rut, nombre, sexo, fnac, fing, nivel, sala, nrocama);
      gotoxy(20,20);printf("ENTER (continua) - 9 (Finaliza)");
      gotoxy(52,20);scanf("%d",&op);
  }
  fclose(fi);
}

pero no me graba los datos de la fecha de ingreso (fing), tampoco el (sexo, nivel),
podria alguien ayudarme porfavor,

si tienen algun ejemplo de manejo de cadenas en c, y archivo. me podrian enviar a mi correo:
rovas2001@vtr.net.
de ante mano muchas gracias
Título: ayuda en archivos
Publicado por: cyber en Martes 23 de Septiembre de 2003, 00:13
Hi;
Debes leer sobre el tratamiento de ficheron en C++.
Hay bastante información al respecto en internet, y por cierto muy clara.
No obstante te mandé un documento a la dirección de correo que posteaste.

Slds
cyber