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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Funcion de modificar archivos no funciona
« en: 24 Mayo 2017, 05:39 am »

Saludos, he estado trabajando en un codigo que sirve para modificar en registro dentro de un archivo .dat, aparentemente se necesita del nombre de un producto para que el programa identifique la ubicacion del registro a modificar, el problema es que aunque ingrese un valor que si existe el programa no lo reconoce y devuelve un mensaje diciendo que no existe ningun registro con ese codigo.

Código:
void mod()
{
    ofstream aux;
    ifstream lectura;
    encontrado=false;

    char auxnombrep[30];
    char auxnuevonombrep[30];
    aux.open("aux.dat",ios::out);
    lectura.open("reg.dat",ios::in);
    if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa el nombre del producto a Modificar: ";
        cin>>auxnombrep;
        lectura>>nombrep;
        while(!lectura.eof()){
            lectura>>prov>>fechac>>precio>>ciudadorigen>>departamento;
            if(auxnombrep==nombrep){
                encontrado=true;
                cout<<"__________________________"<<endl;
                cout<<"Nombre del producto: "<<nombrep;
                cout<<"Proveedor: "<<prov;
                cout<<"Fecha de compra"<<fechac;
                cout<<"Precio: "<<precio;
                cout<<"Ciudad de origen: "<<ciudadorigen;
                cout<<"Departamento: "<<departamento;
                cout<<"__________________________"<<endl;
                cout<<"Ingresa el nuevo producto con  nombre"<<nombrep<<": ";
                cin>>auxnuevonombrep;
                aux<<auxnuevonombrep<< " "<<prov<<" "<<fechac<<" "<<precio<<" "<<ciudadorigen<<" "<<departamento<<endl;
                cout<<"Registro Modificado"<<endl;
            }else{
                aux<<auxnuevonombrep<< " "<<prov<<" "<<fechac<<" "<<precio<<" "<<ciudadorigen<<" "<<departamento<<endl;
            }
            lectura>>nombrep;
        }
    }else{
        cout<<"No se pudo abrir el archivo o aun no ha sido creado"<<endl;
    }
    if(encontrado==false){
        cout<<"No se encontro ningun registro con nombre "<<auxnombrep<<endl;
    }
    aux.close();
    lectura.close();
    remove("reg.dat");
    rename("aux.dat","reg.dat");
}


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Funcion de modificar archivos no funciona
« Respuesta #1 en: 24 Mayo 2017, 06:36 am »

Cuando los strings los defines como char [] esos strings allí guardados, no se comparan con ==
Para ese caso, usa strcmp o strncmp o crea una función que recorra los arreglos y los compare.


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
lifegame

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Funcion de modificar archivos no funciona
« Respuesta #2 en: 24 Mayo 2017, 15:30 pm »

Al parecer ese si era el problema, simplemente puse if(strcmp(auxnombrep, nombrep)== 0) y con eso se soluciono el problema, muchas gracias por la ayuda :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines