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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: ayuda con ficheros en: 3 Diciembre 2011, 01:36 am
Mira lo que haces, es crear, abrir el fichero y cerrarlo, si hacer ninguna operacion dentro. Lo que tendrias que hacer es usar un fwrite, despues de abrirlo y antes de cerrarlo. La "w", lo que hace es crear el fichero si no existe y sobreescribe el contenido, es decir, que lo que guardes en la primera ejecucion en la segunda se sobreescribiran los datos nuevos sobre los anteriores, eliminandolos. Podrias usar "a+" que lo que hace es crear el fichero si no existe y si existe agrega al final del fichero los nuevos datos manteniendo los anteriores.
2  Programación / Programación C/C++ / Ayuda con comparación de ficheros en C++ en: 1 Diciembre 2011, 22:19 pm
Hola, necesitaría ayuda con un programa, que compara dos archivos/ficheros con números enteros, compáralos entre si, y ordenar los números de ambos ficheros de menor a mayor y guardarlo en otro fichero.
Acá dejo lo que tengo de código. Agradecería su ayuda.


/*
    1. Crear dos archivos que contengan la siguiente informacion:
           
            archivo 1: 1    5   11  15  19  21
            archivo 2: 2    4   6   8   10  14
           
    2. Con los archivos 1 y 2 generar un tercer archivo donde se guarde la información
        ordenada, es decir, el resultado debeerá ser:
           
            1 2 4 5 6 8 10 11 14 15 19 21
           
    NOTA: no utilizar vectores
   
    3. Agregar las opciones para mostrar por pantalla los 3 archivos.


*/

#include<iostream.h>
#include <stdio.h>

struct numeros{
   
    int num;
    int nu;
   
}nume, numeA, numeB;

FILE *fichero;
FILE *archivo;
FILE *doc;
void menu();
void cargar();
void MostrarFicheroU();
void cargarS();
void MostrarFicheroD();
void CargarT();
void MostrarFicheroT();

main (){
   
    menu();
   
}

void menu(){
   
    int opcion =0;
   
    cout << "\n Ingrese la opcion que desee ";
    cout << "\n1.Cargar 1° Fichero \n2.Mostrar Fichero 1 \n3.Cargar 2° Fichero \n4.Mostrar Fichero 2 \n5.Fichero 3 \n6.Mostrar Fichero 3 \n7.Salir \n";
    cin >> opcion;
    system("cls");
    switch (opcion){
       
        case 1:
                cargar();
                break;
        case 2:
                MostrarFicheroU();
                break;
        case 3:
                cargarS();
                break;
        case 4:
                MostrarFicheroD();
                break;
        case 5:
                CargarT();
                break;
        case 6:
                MostrarFicheroT();
                break;
        case 7:
                system("exit");
                break;
        default:
                cout<<"\nOpcion incorrecta";
                menu();
    }

}

void cargar(){
   
    fichero =fopen("Fichero.dat","w");
   
    cout << "\n \tIngrese los numeros del primer Fichero ";
   
    for (int r=0; r<=5; r++){
       
        cout<< "\nIngrese " << r << "° numero del fichero";
       
        cin >> nume.num;
       
        fwrite(&nume, sizeof(struct numeros), 1, fichero);
       
    }
   
    fclose(fichero);
    menu();
}

void MostrarFicheroU(){

    fichero = fopen("Fichero.dat", "r");
 
        if(fichero == NULL)
        {
                printf("\nFichero no existe! \nPor favor creelo");
                menu();
        }
 
        fread(&nume, sizeof(struct numeros), 1, fichero);
 
        cout<<"\n \t Numeros primer fichero";
 
        while(!feof(fichero))
        {
                cout<<"\n "<< nume.num;
                fread(&nume, sizeof(struct numeros), 1, fichero);
       
        }
       
    fclose (fichero);
    menu();
}

void cargarS(){
   
    archivo = fopen("Archivo.dat","w");
   
    cout << "\n \tIngrese los numeros del primer Fichero ";
   
    for (int r=0; r<=5; r++){
       
        cout<< "\nIngrese " << r << "° numero del fichero";
       
        cin >> numeA.num;
       
        fwrite (&numeA, sizeof(struct numeros), 1, archivo);
       
    }
   
    fclose(archivo);
    menu();
}

void MostrarFicheroD(){
 
    archivo = fopen("Archivo.dat", "r");
 
    if(archivo == NULL)
    {
        printf("\nFichero no existe! \nPor favor creelo");
        menu();
    }
 
    fread(&numeA, sizeof(struct numeros), 1, archivo);
 
    cout<<"\n \t Numeros segundo fichero";
 
    while(!feof(archivo))
    {
        cout<<"\n "<< numeA.num;
        fread(&numeA, sizeof(struct numeros), 1, archivo);
       
    }
       
    fclose (archivo);
    menu();
}

void CargarT(){
   
    doc = fopen("Documento.dat","w");
    fichero = fopen ("Fichero.dat", "r");
    archivo =fopen ("Archivo.dat", "r");
   
    int menor=0;
    int nu=0;
    fread (&nume, sizeof(struct numeros), 1, fichero);
    fread (&numeA, sizeof(struct numeros), 1, archivo);
   
    while(!feof (fichero)){
       
        while(!feof(archivo)){
           
            if ((nume.num < numeA.num)&&(nume.num > menor))
            {
                menor = nume.num;
                nu = numeA.num;       
            }
            else
            {
                menor = numeA.num;
                nu = nume.num;   
            }
           
            fread (&numeA, sizeof(struct numeros), 1, archivo);
            fread (&nume, sizeof(struct numeros), 1, fichero);
           
            numeB.num = menor;
            numeB.nu = nu;
            fwrite(&numeB, sizeof(struct numeros), 1, doc);   
           
        }
       
    }

    fclose(fichero);
    fclose(archivo);
    fclose(doc);
    menu();
}

void MostrarFicheroT(){
   
    doc = fopen("Documento.dat", "r");
 
    if(doc == NULL)
    {
        printf("\nFichero no existe! \nPor favor creelo");
        menu();
    }
 
    fread(&numeB, sizeof(struct numeros), 1, doc);
 
    cout<<"\n \t Numeros tercer fichero";
 
    while(!feof(doc))
    {
        cout<<"\n "<< numeB.num << "\n" << numeB.nu;
        fread(&numeB, sizeof(struct numeros), 1, doc);
       
    }
       
    fclose (doc);
    menu();
}

Del código lo único que no funciona del todo bien es la parte de la comparación.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines