Código
donde tengo el problema es con la funcion de eliminar (void eliminarpro) porque antes de esa todo funcionaba bien, y despues de agregarla me da esto:
#include<iostream> #include<stdlib.h> #include <locale.h> #include<stdio.h> #include<conio.h> #include<fstream> #include<iomanip> #include <windows.h> using namespace std; void agregarPro(){ //Función para poder agregar y guardar datos de los productos setlocale(LC_CTYPE,"Spanish"); // para imprimir la ñ y las tildes ofstream guardar("productos.txt", ios::app); //Comando para crear un archivo .txt para guardar los datos que se piden al usuaio //Declaración de variables string nom, codPro; //variables para guardar los datos de tipo string float precio, existencias; // variables para guardar los datos de tipo float system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Registrar nuevo producto *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t\nIngrese el nombre del producto: "; //Se ingresa el nombre del producto cin>>nom; cout<<"\t\t\t\t\nIngrese el código del producto: "; // Se ingresa el código del producto cin>>codPro; cout<<"\t\t\t\t\nIngrese el precio del producto: $"; //Se ingresa el precio del producto cin>>precio; cout<<"\t\t\t\t\nIngrese las existencias del producto: "; //Se ingresa la existencia del producto cin>>existencias; system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Producto registrado exitosamente *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); guardar<<" "<<nom<<" "<<codPro<<" "<<precio<<" "<<existencias<<"\n"; guardar.close(); } void buscarPro(){ //Función para buscar los productos en el archivo .txt llamado productos system("cls"); ifstream guardar; //Definimos que la función solo es de lectura guardar.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar //Declaración de variables string nom, codPro, codProCom; // variables donde se van almacenar los datos en forma de string float precio, existencias; // variables donde se van almacenar los datos en forma float system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Buscar producto *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\n\n"; cout<<"\t\t\t\tDigite el código del producto: "; cin>>codProCom; // Se almacena el código a buscar del archivo guardar>>nom; // Aquí se va almacenar el dato de nombre del archivo productos.txt guardar>>codPro; // Aquí se va almacenar el dato de código del archivo productos.txt guardar>>precio; // Aquí se va almacenar el dato de precio del archivo productos.txt guardar>>existencias; // Aquí se va almacenar el existencias de nombre del archivo productos.txt if(codPro == codProCom){ //Se compara si el código ingresado es igual al que se busca //Se muestran los datos si el código ingresado existe cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t- Nombre del producto: "<<nom<<endl; cout<<"\t\t\t\t- Codigo del producto: "<<codPro<<endl; cout<<"\t\t\t\t- Precio del producto: $"<<precio<<endl; cout<<"\t\t\t\t- Existencia del producto: "<<existencias<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); }else{ // Mensaje si el dato es erroneo o no existe cout<<"\t\t\t\tDato no encontrado o no existe en la base de datos"<<endl; cout<<"\n\n"; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } guardar.close(); // Cerramos el archivo .txt } //Función para poder agregar y guardar datos de informes de cortes de cajas diarios void agregarInfo(){ ofstream guardarInfo("Informe de caja.txt", ios::app); //Comando para crear un archivo .txt para guardar los datos que se piden al usuaio //Declaración de variables string nomIn, fechaIn, numCa; //variables para los datos de tipo string float venta, total; //variables para los datos de tipo float system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Registrar nuevo informe *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t\nIngrese su nombre: "; // Se ingresa el nombre de la persona encargada de hacer el informe cin>>nomIn; cout<<"\t\t\t\t\nIngrese la fecha de hoy (DD/MM/AA): "; //Se ingresa la fecha de hoy cin>>fechaIn; cout<<"\t\t\t\t\nIngrese el número de caja: "; // Se ingresa el número de caja correspondiente cin>>numCa; cout<<"\t\t\t\t\nIngrese la cantidad de productos vendidos: "; //Se ingresa la cantidad de productos vendidos cin>>venta; cout<<"\t\t\t\t\nIngrese la cantidad total en efectivo: $"; //Se ingresa la cantidad total de la caja cin>>total; system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Informe registrado exitosamente *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); guardarInfo<<fechaIn<<" "<<nomIn<<" "<<numCa<<" "<<venta<<" "<<total<<"\n"; //Se guardan los datos en el archivo .txt que le pedimos al usuario guardarInfo.close(); } void modificarPro(){ //Función para modoficar los productos ifstream modificarPro; //Comando para abrir archivo .txt en forma de lectura //Declaración de variables string nom, codPro, codProCam; //variables para guardar los datos de tipo string float precio, existencias, precioCambio, existenciasCambio; // variables para guardar los datos de tipo float modificarPro.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar ofstream aux("mod.txt", ios::out); //Creamos un nuevo archivo donde se almacenaran los cambios if (modificarPro.is_open()){ //Evaluamos si se pudo abrir el archivo .txt system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Modificar datos *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t\nIngrese el código del producto a modificar: "; cin>>codProCam; //Variable para buscar el producto a modificar por medio del código modificarPro>>nom; // Se almacena el nombre del producto para poder imprimir los datos buscados while(!modificarPro.eof()){ //while que nos permite cambiar los datos solo sí el archivo .txt tiene datos modificarPro>>codPro; //Se almacena el codigo del producto modificarPro>>precio; //Se almacena el precio del producto modificarPro>>existencias; //Se almacena la existencia del producto if(codPro == codProCam){ //Se verifica que el código a buscar es igual al alguno del archivo .txt cout<<"\t\t\t\t\nDigite el nuevo precio del producto: $"; cin>>precioCambio; cout<<"\t\t\t\t\nDigite el nuevo número de existencias del producto: "; cin>>existenciasCambio; aux<<nom<<" "<<codPro<<" "<<precioCambio<<" "<<existenciasCambio; //Se guardan los datos modificados en el nuevo archivp .txt llamado mod.txt system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Archivos guardados correctamente *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } else{ //Mensaje en dado caso que no se puedan realizar los cambios cout<<"\t\t\t\t\nNo se pudieron relizar los cambios."; aux<<nom<<" "<<codPro<<" "<<precio<<" "<<existencias; //se dejan los datos anteriores en el nuevo archivo cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } modificarPro>>nom; } modificarPro.close(); //Cerramos el archivo de letura que nos sirvió para buscar aux.close(); //Cerramos el archivo nuevo llamado mod.txt remove("productos.txt"); //Elinamos el archivo antiguo rename ("mod.txt", "productos.txt"); //Llamamos igual que el antiguo archivo .txt para no tener problemas con las demás funciones }else{ //Mensaje si no se puede abrir el archivo .txt cout<<"\t\t\t\tError"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } void eliminarPro(){ ifstream modificarPro; system("cls"); string nom; string codPro; string codProCam; eliminarPro.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar ofstream aux("elim.txt", ios::out); //Creamos un nuevo archivo donde se almacenaran los cambios if (eliminarPro.is_open()){ //Evaluamos si se pudo abrir el archivo .txt system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Eliminar datos *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t\nIngrese el código del producto a eliminar: "; cin>>codProCam; //Variable para buscar el producto a eliminar por medio del código eliminarPro>>nom; // Se almacena el nombre del producto para poder imprimir los datos buscados while(!eliminarPro.eof()){ //while que nos permite eliminar los datos solo sí el archivo .txt tiene datos eliminarPro>>codPro; //Se almacena el codigo del producto if(codPro == codProCam){ //Se verifica que el código a buscar es igual al alguno del archivo .txt cout<<"\t\t\t\t\nEliminado correctamente!!**"; sleep(2); system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Archivos guardados correctamente *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } else{ //Mensaje en dado caso que no se puedan realizar los cambios cout<<"\t\t\t\t\nNo se pudieron relizar los cambios."; aux<<nom<<" "<<codPro; //se dejan los datos anteriores en el nuevo archivo cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } eliminarPro>>nom; } eliminarPro.close(); //Cerramos el archivo de letura que nos sirvió para buscar aux.close(); //Cerramos el archivo nuevo llamado mod.txt remove("productos.txt"); //Elinamos el archivo antiguo rename ("elim.txt", "productos.txt"); //Llamamos igual que el antiguo archivo .txt para no tener problemas con las demás funciones } } void buscarInfo(){ //Función para buscar los informes en el archivo .txt llamado Informe de caja system("cls"); ifstream guardarInfo; //Definimos que la función solo es de lectura guardarInfo.open("Informe de caja.txt", ios::in); //Abrimos el documento .txt creado en la función de agregarInfo //Declaración de variables string nomIn, fechaIn, numCa, numCaCom; // variables donde se van almacenar los datos en forma de string float venta, total; // variables donde se van almacenar los datos en forma float system("cls"); cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Buscar informe *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\n\n"; cout<<"\t\t\t\tDigite el número de caja a buscar: "; cin>>numCaCom; // Se almacena el número de caja a buscar en el archivo guardarInfo>>nomIn; // Aquí se va almacenar el dato de nombre de la persona que crea el informe guardarInfo>>fechaIn; // Aquí se va almacenar el dato de la fecha de creación del informe guardarInfo>>numCa; // Aquí se va almacenar el dato de número de caja guardarInfo>>venta; // Aquí se va almacenar el dato de números de prodcutos vendidos guardarInfo>>total; // Aquí se va almacenar el total obtenido al final del día if(numCaCom == numCa){ //Se compara si el número de caja ingresado es igual al que se busca //Se muestran los datos si el número de caja ingresado existe cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t- Nombre del trabajador: "<<nomIn<<endl; cout<<"\t\t\t\t- Fecha de creación "<<fechaIn<<endl; cout<<"\t\t\t\t- Número de caja: "<<numCa<<endl; cout<<"\t\t\t\t- Cantidad de productos vendidos: "<<venta<<endl; cout<<"\t\t\t\t- Total en efectivo: $"<<total<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); }else{ // Mensaje si el dato es erroneo o no existe cout<<"\t\t\t\tDato no encontrado o no existe en la base de datos"<<endl; cout<<"\n\n"; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); } guardarInfo.close(); // Cerramos el archivo .txt } void verInfo(){ //Función para ver todo los datos agregados de informes ifstream verInfo; //Definimos que la función solo es de lectura verInfo.open("Informe de caja.txt", ios::in); //Declaración de variables string nomIn, fechaIn, numCa; // variables donde se van almacenar los datos en forma de string float venta, total; // variables donde se van almacenar los datos en forma float verInfo>>nomIn; while(!verInfo.eof()){ verInfo>>fechaIn; verInfo>>numCa; verInfo>>venta; verInfo>>total; cout<<"\n\n"; cout<<"\t\t\t\tNombre del empleado___________________: "<<nomIn<<endl; cout<<"\t\t\t\tFecha de creación_____________________: "<<fechaIn<<endl; cout<<"\t\t\t\tNúmero de caja________________________: "<<numCa<<endl; cout<<"\t\t\t\tCantidad de productos vendidos________: "<<venta<<endl; cout<<"\t\t\t\tTotal en efectivo_____________________: $"<<total<<endl; verInfo>>nomIn; } verInfo.close(); cout<<"\n\n"; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t* Presione cualquier tecla para volver *"<<endl; cout<<"\t\t\t\t***********************************************************"<<endl; cout<<"\t\t\t\t"; getche(); system("cls"); }
In function 'void modificarPro()':
[Error] a function-definition is not allowed here before '{' token
[Error] expected '}' at end of input
Si me podrian ayudar les agradeceria mucho y me salvan la vida.