[SOLUCIONADO] Ayuda! Imprimir Registros Ordenados en C

Iniciado por Shatsozzy, Febrero 23, 2013, 04:04:07 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 23, 2013, 04:04:07 PM Ultima modificación: Septiembre 18, 2014, 08:52:11 PM por Expermicid
Buenas!.. tengo un problemita.... Quisiera que los datos me salieran ordenados! uno bajo de otro! cada registro uno bajoa de otro! pero miren lo que pasa aveces ._.! de verdad no tengo ni la menor idea

Código: c
mostrar()//MOSTRAR DATOS
{
archivo = fopen ("nomina.dat", "rb+");
if (archivo == NULL)
    {
     perror("No se puede abrir nomina.dat");
     getch();
     inicio();
    }
fseek(archivo, 0, SEEK_END);
numeroRegistros = ftell(archivo)/sizeof(nomina);
printf (" REG\tC.I\t\tNOMBRE\t\tDIRECCION\tSUELDO\n"); //imagino q esta aqui el error con las tabulaciones
for (i=0; i<numeroRegistros; i++)
     {
      fseek (archivo, i*sizeof(nomina), SEEK_SET);
      fread (&nomina, sizeof(nomina), 1, archivo);
      printf (" %d\t%s\t%s\t\t%s\t%s\t\n",i+1,nomina.ci,nomina.nombre,nomina.direccion,nomina.sueldo);//imagino q esta aqui el error con las tabulaciones
     }
fclose(archivo);
}




vean el ultimo sueldo x.x

Y el archivo nomina.dat como esta su contenido?

Podrias ponerlo?

Si el error estuviera en la linea que tu dices creeria que no solo lo va a hacer en el ultimo caso sino en todos.

Saludos

el contenido es:

6.246.354      antonio        guarenas       3265 5.215.654      pedro o        charallave     2344 6.215.325      anotnio        caracas ve     3556

ingrese datos nuevamente por simple curosidad y mira ahora:



y el contenido del archivo es :

2.325.256      jose           caracas        6542 5.325.365      joselo         guarenas       6563 8.245.153      antoni         guatire        3216

Febrero 23, 2013, 04:35:59 PM #3 Ultima modificación: Febrero 08, 2014, 04:56:16 PM por Expermicid
imagino yo q es:

Código: c
typedef struct {
        char ci[15];
        char nombre[15];
        char direccion[15];
        char sueldo[5];
        } campos;


el sueldo que es el ultimo valor! solo tiene 5 caracteres!.  los demas 15!. ya que cada registro se guardo con sizeof! podria ser eso?

otra cosa!.. el error ocurre! según la cantidad de caracteres en cada registro!... lleno todos con lo mismo! y salen ordenandos!.