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

 

 


Tema destacado:


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Funcion de modificar archivos copia el valor de variable a todos los registros en: 28 Mayo 2017, 09:24 am
En esta funcion se supone que al seleccionar un "registro"(el programa busca una variable que coincida con la variable auxiliar(que es dada por el usuario), si la encuentra, se modifican los datos de ese registro, piediendolos uno por uno, pero al final la variable "clave" es copiada a todos los registros. Que esta pasando? :(

Código:
void mod()
{system ("cls");
    ofstream aux;
    ifstream lectura;
    encontrado=false;
    char auxClave[10];


    aux.open("regaux.dat",ios::out);
    lectura.open("reg.dat",ios::in);
    if(aux.is_open() && lectura.is_open()){
        cout<<"Ingresa la clave del producto a Modificar: ";
        cin>>auxClave;
        lectura>>clave;
        while(!lectura.eof()){
            lectura>>nombrep>>prov>>fechac>>precio>>ciudadorigen>>departamento;
            if(strcmp(clave,auxClave)==0){
                encontrado=true;
                cout<<"__________________________"<<endl;
                cout<<"Clave de compra: "<<clave<<endl;
                cout<<"Nombre del producto: "<<nombrep<<endl;
                cout<<"Proveedor: "<<prov<<endl;
                cout<<"Fecha de compra: "<<fechac<<endl;
                cout<<"Precio: "<<precio<<endl;
                cout<<"Ciudad de origen: "<<ciudadorigen<<endl;
                cout<<"Departamento: "<<departamento<<endl;
                cout<<"__________________________"<<endl;
                cout<<"Ingresa el nuevo producto: ";
                cin>>auxnuevonombrep;
                cout<<"Ingresa el nuevo proveedor del registro: ";
                cin>>auxprov;
                cout<<"Ingresa la nueva fecha de compra del registro: ";
                cin>>auxfechac;
                cout<<"Ingresa el nuevo precio del registro: ";
                cin>>auxprecio;
                cout<<"Ingresa la nueva ciudad de origen del registro: ";
                cin>>auxciudad;
                cout<<"Ingresa el nuevo departamento del registro: ";
                cin>>auxdepartamento;
                aux<<clave<<" "<<auxnuevonombrep<< " "<<auxprov<<" "<<auxfechac<<" "<<auxprecio<<" "<<auxciudad<<" "<<auxdepartamento<<endl;
                cout<<"Registro Modificado"<<endl;
            }else{
                aux<<auxClave<<" "<<nombrep<< " "<<prov<<" "<<fechac<<" "<<precio<<" "<<ciudadorigen<<" "<<departamento<<endl;
            }
            lectura>>clave;
        }
    }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 clave de compra: "<<auxClave<<endl;
    }
    aux.close();
    lectura.close();
    remove("reg.dat");
    rename("regaux.dat","reg.dat");
}
2  Programación / Programación C/C++ / 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");
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines