Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: zhizhuz en 25 Junio 2018, 06:34 am



Título: ayuda con ficheros
Publicado por: zhizhuz en 25 Junio 2018, 06:34 am
Buenas me presento mi nombre es jesus, antes que nada le doy las gracias a los que me ayuden y les pido disculpas si el tema ya fue creado.
El asunto es el siguiente estoy  empezando con manejo de archivos, en txt y estoy tratando de hacer un ejercicio pero no doy en el clavo. Es bastante sencillo pero no logro hacer que imprima las 2 columnas como mustra el ejercicio siguiente--->
en un  txt estan los empleados y en otro txt los Id y los sueldos.
Escribir un programa que lea estos archivos y genere el siguiente listado.
                         “EMPLEADO”          “DINERO POR HORA”
                          ========             ============== 
                   Juan García      7.50
Ana Fernández      8.75
Lidia Martínez      9.35   
Héctor López      10.50
Sebastián Azcurra       6.35
                           
no logro imprimir las segunda columna donde solo me imprima el dinero por hora y no los Id y el precio a pagar.
les dejo mi codigo con lo que tengo hasta ahora
#include <stdio.h>
#include <stdlib.h>
FILE *hola;
FILE *costo;
void carga(FILE *hola);
void unir(FILE *costo);
void unir2(FILE *hola);
void carga2(FILE *costo);
int main(int argc, char *argv[]) {
   
   carga(hola);
   carga2(costo);
   unir(costo);
   return 0;
}
void carga(FILE *hola)
{
   hola=fopen("hola.txt","w");
   float i;int h;int j;
   for(h=0;h<3;h++)
   {
   system("cls");
   printf("ingrese matricula:");
   scanf("%d",&j);
   fprintf(hola,"%d\t",j);
   printf("ingrese precio:");
   scanf("%f",&i);
   fprintf(hola,"%.2f\n",i);
   }
fclose(hola);

}
void unir(FILE *costo)
{
   costo=fopen("costo.txt","r");
   hola=fopen("hola.txt","r");
      int c;int h; int m;int g;
   if(costo==NULL && hola==NULL)
   {
      printf("no se puede abrir el archivo\n");
   }
   while((m=fgetc(hola))!=EOF)
   {
      fscanf(hola,"%f",&g);
   }
   printf("%f",g);
   
   printf("%-10s %-20s\n\n","nombre","saldo");
   while((c=fgetc(costo))!=EOF)
   {
      printf("%c" ,c);
   }
   
fclose(hola);
fclose(costo);
}
void carga2(FILE *costo)
{
   costo=fopen("costo.txt","w");
   int h;
   char nom[50];
   for(h=0;h<3;h++)
   {
   system("cls");
   printf("ingrese nombre:");
   fflush(stdin);
   gets(nom);   
   fprintf(costo,"%s\n",nom);
   }
fclose(costo);
}



les pido disuclpas por el nombre de las variables y de las funciones es un borrador.
cualquier ayuda sera bienvenida y muchas gracias de nuevo.


Título: Re: ayuda con ficheros
Publicado por: ThunderCls en 26 Junio 2018, 18:50 pm
1- Debes usar etiquetas de código en tu post o tu código directamente hará sangrar los ojos de los que intentamos leerlo  ;)

2- Este tipo de trabajos con ficheros se hace mas difícil en caso de no conocer o que los ficheros estén creados sin una estructura especifica ya que tienes que leer los ficheros como texto, manejar espacios, terminaciones de linea, divisores de datos...en fin. Lo ideal para este tipo de problemas, encima de que estas usando c (no se que tanto conozcas de estructuras de datos), es usar ficheros binarios con estructuras. Te creas la estructura que tendrán los ficheros y puedes leer y escribir en ellos con el mínimo esfuerzo.

Suerte