elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estructuras y archivos en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructuras y archivos en c++  (Leído 2,930 veces)
Luifs

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Estructuras y archivos en c++
« en: 7 Junio 2013, 21:04 pm »

Alguien me podria ayudar con mi codigo
Citar
#include <stdio.h>

int main(){
   printf("\nBienvenidos al lector \n");

   FILE* miarchivo;
   char* nombrearchivo= "texto1.txt";
   char lectura[80];
   int i;
   miarchivo= fopen(nombrearchivo, "r");

   for(i=0; i<10; i++)
   {
      if(miarchivo==NULL)return -1;

      fscanf(miarchivo," %[^\n]",&lectura);
      printf("Linea %d: %s  \n",i+1,lectura);
   }

fclose(miarchivo);
}

Solamente me muestra el contenido del archivo

este es el contenido del archivo de texto
as 10 08
as 20 15
as 30 35
as 70 94
as 90 75
as 84 74
as 75 12
as 08 15
as 25 98
as 12 15

Pero ahora necesito que me ordene del mayor al menor segun las cantidades que estan en medio y luego del mayor al menor segun las cantidades de la tercera columna..




En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Estructuras y archivos en c++
« Respuesta #1 en: 7 Junio 2013, 21:54 pm »

Pues no hagas el output directamente, simultáneamente puedes guardar todo en alguna matriz y con condicionales vas mostrando de mayor a menor. Crea por ejemplo una matriz para la columna del medio y para la última.
Código:
int columna_Medio[10];
int columna_Derec[10];

Entonces en cambio de hacer scanf guardar en variables.

Código:
lectura = columna_Medio[i]
// y en el siguiente bucle ...
lecutra = columna_Derec[i]

Para eso no podrás leer toda una linea de golpe, sino de espacio en espacio e ir almacenando. Después de esto, podrías crear una función para que quede más bonito :3 que se ocupe de hacer comparaciones del palo:

Código:
while (true) {
    for (int i = 0; i++; i < 10) {
        // Comparación con matriz controlada por i
        for (int z = 0; z++ ; z < 10) {
            // Comparación matriz controlada por variable z
           // Y así hasta llegar a comparar todos con todos  
      }
   }
}


En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Luifs

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Estructuras y archivos en c++
« Respuesta #2 en: 7 Junio 2013, 22:02 pm »

Y no puedes asignar cada campo a una estructura?
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Estructuras y archivos en c++
« Respuesta #3 en: 7 Junio 2013, 22:46 pm »

No se a que te refieres exactamente, si te refieres a poner cada uno de los cadena de números, sí, podrías hacerlo. Puedes hacer otra división de matrices dentro de otras y tenerlo mejor ordenado.

Código:
int asdf[10][3];

Y vas poniendo del asdf[0] (primera linea) el segundo valor ([1]) debe compararse con tal:

Código:
if (asdf[0][1] == "aksdjsakld") etc {

Saludooos

En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Luifs

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Estructuras y archivos en c++
« Respuesta #4 en: 8 Junio 2013, 00:00 am »

Disculpa como podria hacer que me ordene del mayor al menor tomando en cuenta la columna del centro
Citar
#include <stdio.h>

struct
{
   char nombre[35];
   int venta;
   int importe;
} productos;

int main(){
   printf("\nBienvenidos al lector \n");

   FILE* miarchivo;
   char* nombrearchivo= "texto1.txt";
   int i;
   miarchivo= fopen(nombrearchivo, "r");

   for(i=0; i<10; i++)
   {
      fscanf(miarchivo,"%s",&productos.nombre);
      printf("Linea %d: %s  ",i+1,productos.nombre);

      fscanf(miarchivo,"%d",&productos.venta);
      printf(" %d  ",productos.venta);

      fscanf(miarchivo,"%d",&productos.importe);
      printf(" %d  \n",productos.importe);
   }


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Estructuras y archivos en c++
« Respuesta #5 en: 8 Junio 2013, 02:27 am »

Los pasos en lo general son:

1) Declaras un array de estructuras para almacenar ahí cada uno de los registros.
2) Lees cada registro, lo políticamente correcto es utilizar fgets para leer una linea de texto y a continuación sscanf para extraer los tres campos pero, por sencillez, puedes empezar con fscanf.
3) Una vez tienes todos los registros en memoria los ordenas manualmente mediante una función propia o utilizando la función qsort (prototipo en <stdlib.h>). Sin importar el caso te conviene crear una función que compare dos registros y te diga su relación (si el primero es menor, igual o mayor que el segundo).

Empieza a desarrollarlo tu solo y te ayudamos en las partes donde tengas dificultades.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructuras.....
Programación C/C++
Rodri 1 2,489 Último mensaje 6 Octubre 2011, 19:46 pm
por satu
Estructuras en C++
Programación C/C++
jjrl1984 1 1,656 Último mensaje 18 Diciembre 2012, 02:27 am
por naderST
Archivos .txt y estructuras c++
Programación C/C++
Ja_90 2 2,117 Último mensaje 7 Noviembre 2014, 02:41 am
por Ja_90
estructuras y lectura de archivos en C
Programación C/C++
michellcrh 2 2,261 Último mensaje 2 Junio 2020, 00:08 am
por michellcrh
Ayuda con estructuras y archivos
Programación C/C++
luckyghost 2 2,645 Último mensaje 10 Agosto 2020, 04:35 am
por luckyghost
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines