Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como imprimir arreglo de estructura en orden invertido (ARCHIVOS EN C)

Estas en el tema de Como imprimir arreglo de estructura en orden invertido (ARCHIVOS EN C) en el foro de C/C++ en Foros del Web. HOLA! Ante todo gracias por tratar de ayudar. Tengo que hacer este ejercicio y hasta ahora tengo esto pero no se como imprimir por pantalla ...
  #1 (permalink)  
Antiguo 03/12/2014, 17:06
 
Fecha de Ingreso: septiembre-2014
Ubicación: -
Mensajes: 2
Antigüedad: 10 años, 2 meses
Puntos: 0
Como imprimir arreglo de estructura en orden invertido (ARCHIVOS EN C)

HOLA! Ante todo gracias por tratar de ayudar. Tengo que hacer este ejercicio y hasta ahora tengo esto pero no se como imprimir por pantalla en orden invertido? Me podrian ayudar? Esta bien lo que estoy haciendo?

Este es el enunciado:

Desde texto.top copiar los registros a un arreglo de estructura que tiene como maximo 100 registros. Imprimir por pantalla desde un arreglo de estructura la informacion con el orden invertido.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define n 100

struct registro{
int codigo;
int medicion;
char descripcion[20];

}var_registro, p_registro, ae_registro[n];

int main(){

char tecla, caracter;

FILE *p_lectura_t, *p_lectura_w;

p_lectura_w = fopen ("texto.top","rb");
if (p_lectura_w == NULL)
{
printf("Error al leer el archivo\n");
getchar();
return(1);
}

int c=0;

ae_registro[c]=var_registro;
fread(&var_registro,sizeof(var_registro),1,p_lectu ra_w);
ae_registro[c].codigo = var_registro.codigo;
ae_registro[c].medicion = var_registro.medicion;
strcpy (ae_registro[c].descripcion, var_registro.descripcion);
while((feof(p_lectura_w)==0) && c<100)
{
printf("%d",ae_registro[c].codigo);
printf("%d",ae_registro[c].medicion);
printf("%s",ae_registro[c].descripcion);
printf("\n");
c++;

fread(&var_registro,sizeof(var_registro),1,p_lectu ra_w);
ae_registro[c].codigo = var_registro.codigo;
ae_registro[c].medicion = var_registro.medicion;
strcpy (ae_registro[c].descripcion, var_registro.descripcion);

}

fclose(p_lectura_w);
return(0);
}


MUCHAS GRACIAS!!!
  #2 (permalink)  
Antiguo 03/12/2014, 21:55
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 2 meses
Puntos: 38
Respuesta: Como imprimir arreglo de estructura en orden invertido (ARCHIVOS EN C)

Si no es muy grande el archivo podias copiarlo en un arreglo y hacer esto:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main () {
  5.     int TAM;
  6.     int i;
  7.     char palabra[] = "Esto es un ejemplo de como escribir hacia atraz XD"; //tiene 50 + 1. Ese uno es un caracter oculto que marca el fin de la cadena '\0'
  8.    
  9.     TAM = sizeof ( palabra );
  10.     printf ( "Palabra tiene %d letras incluyendo espacios y un bonito caracter oculto que esta en el final.\n\n", TAM );
  11.    
  12.     printf("Hacia atraz\n\n");
  13.     for ( i = 0; i < TAM - 1; i++ ) { //-1 para que no imprima el caracter oculto XD
  14.         printf ( "%c", palabra[i] );
  15.     }
  16.  
  17.     printf("\n\nHacia atraz\n\n");
  18.     //imprime de TAM-2 que es 51-2 hasta llegar a la posicion cero. Note que i va decrementando "i--"
  19.     for ( i = TAM-2; i >= 0; i-- ) {
  20.         printf ( "%c", palabra[i] );
  21.     }
  22.  
  23.     // El caracter oculto es en el caso de cadena de caracteres. En arreglos de enteros a lo mejor TAM-1 el inicio o incluso TAM hasta cero.
  24.     getchar();
  25.     return 0;
  26. }

Si no es lo mismo pero tienes que leer el archivo de atraz hacia adelante.
O incluso hacer linea a linea para no quedar muy pesado.

Etiquetas: arreglo, char, estructura, int, orden
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:15.