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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problema de c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema de c++  (Leído 3,837 veces)
behindfa21

Desconectado Desconectado

Mensajes: 14


Ver Perfil
problema de c++
« en: 11 Abril 2022, 10:09 am »

Hola, pues queria comentar que tengo un error en un codigo que vengo trebajando semanas y pues no encuentro una solución, les dejo el codigo y abajo el error:

Código
  1. #include<iostream>
  2. #include<stdlib.h>
  3. #include <locale.h>
  4. #include<stdio.h>
  5. #include<conio.h>
  6. #include<fstream>
  7. #include<iomanip>
  8. #include <windows.h>
  9. using namespace std;
  10.  
  11.  
  12.  
  13. void agregarPro(){ //Función para poder agregar y guardar datos de los productos
  14. setlocale(LC_CTYPE,"Spanish"); // para imprimir la ñ y las tildes
  15. ofstream guardar("productos.txt", ios::app); //Comando para crear un archivo .txt para guardar los datos que se piden al usuaio
  16. //Declaración de variables
  17. string nom, codPro; //variables para guardar los datos de tipo string
  18. float precio, existencias; // variables para guardar los datos de tipo float
  19. system("cls");
  20. cout<<"\t\t\t\t***********************************************************"<<endl;
  21. cout<<"\t\t\t\t*                Registrar nuevo producto                 *"<<endl;
  22. cout<<"\t\t\t\t***********************************************************"<<endl;
  23. cout<<"\t\t\t\t\nIngrese el nombre del producto: "; //Se ingresa el nombre del producto
  24. cin>>nom;
  25. cout<<"\t\t\t\t\nIngrese el código del producto: "; // Se ingresa el código del producto
  26. cin>>codPro;
  27. cout<<"\t\t\t\t\nIngrese el precio del producto: $"; //Se ingresa el precio del producto  
  28. cin>>precio;
  29. cout<<"\t\t\t\t\nIngrese las existencias del producto: "; //Se ingresa la existencia del producto
  30. cin>>existencias;
  31. system("cls");
  32. cout<<"\t\t\t\t***********************************************************"<<endl;
  33. cout<<"\t\t\t\t*          Producto registrado exitosamente               *"<<endl;
  34. cout<<"\t\t\t\t***********************************************************"<<endl;
  35. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  36. cout<<"\t\t\t\t***********************************************************"<<endl;
  37. cout<<"\t\t\t\t";
  38. getche();
  39. system("cls");
  40. guardar<<" "<<nom<<" "<<codPro<<" "<<precio<<" "<<existencias<<"\n";
  41. guardar.close();
  42. }
  43.  
  44. void buscarPro(){ //Función para buscar los productos en el archivo .txt llamado productos
  45. system("cls");
  46.    ifstream guardar; //Definimos que la función solo es de lectura
  47. guardar.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar
  48. //Declaración de variables
  49. string nom, codPro, codProCom; // variables donde se van almacenar los datos en forma de string
  50. float precio, existencias; // variables donde se van almacenar los datos en forma float
  51. system("cls");
  52.    cout<<"\t\t\t\t***********************************************************"<<endl;
  53.    cout<<"\t\t\t\t*                Buscar producto                          *"<<endl;
  54. cout<<"\t\t\t\t***********************************************************"<<endl;
  55. cout<<"\n\n";
  56. cout<<"\t\t\t\tDigite el código del producto: ";
  57. cin>>codProCom; // Se almacena el código a buscar del archivo
  58. guardar>>nom; // Aquí se va almacenar el dato de nombre del archivo productos.txt
  59. guardar>>codPro; // Aquí se va almacenar el dato de código del archivo productos.txt
  60. guardar>>precio; // Aquí se va almacenar el dato de precio del archivo productos.txt
  61. guardar>>existencias; // Aquí se va almacenar el existencias de nombre del archivo productos.txt
  62. if(codPro == codProCom){ //Se compara si el código ingresado es igual al que se busca
  63. //Se muestran los datos si el código ingresado existe
  64. cout<<"\t\t\t\t***********************************************************"<<endl;
  65. cout<<"\t\t\t\t- Nombre del producto: "<<nom<<endl;
  66. cout<<"\t\t\t\t- Codigo del producto: "<<codPro<<endl;
  67. cout<<"\t\t\t\t- Precio del producto: $"<<precio<<endl;
  68. cout<<"\t\t\t\t- Existencia del producto: "<<existencias<<endl;
  69. cout<<"\t\t\t\t***********************************************************"<<endl;
  70. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  71. cout<<"\t\t\t\t***********************************************************"<<endl;
  72. cout<<"\t\t\t\t";
  73. getche();
  74. system("cls");
  75. }else{
  76. // Mensaje si el dato es erroneo o no existe
  77.     cout<<"\t\t\t\tDato no encontrado o no existe en la base de datos"<<endl;
  78.     cout<<"\n\n";
  79. cout<<"\t\t\t\t***********************************************************"<<endl;
  80. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  81. cout<<"\t\t\t\t***********************************************************"<<endl;
  82. cout<<"\t\t\t\t";
  83. getche();
  84. system("cls");
  85. }
  86. guardar.close(); // Cerramos el archivo .txt
  87. }
  88.  
  89. //Función para poder agregar y guardar datos de informes de cortes de cajas diarios
  90. void agregarInfo(){
  91. ofstream guardarInfo("Informe de caja.txt", ios::app); //Comando para crear un archivo .txt para guardar los datos que se piden al usuaio
  92. //Declaración de variables
  93. string nomIn, fechaIn, numCa; //variables para los datos de tipo string
  94. float venta, total; //variables para los datos de tipo float
  95. system("cls");
  96. cout<<"\t\t\t\t***********************************************************"<<endl;
  97. cout<<"\t\t\t\t*                Registrar nuevo informe                  *"<<endl;
  98. cout<<"\t\t\t\t***********************************************************"<<endl;
  99. cout<<"\t\t\t\t\nIngrese su nombre: "; // Se ingresa el nombre de la persona encargada de hacer el informe
  100. cin>>nomIn;
  101. cout<<"\t\t\t\t\nIngrese la fecha de hoy (DD/MM/AA): "; //Se ingresa la fecha de hoy
  102. cin>>fechaIn;
  103. cout<<"\t\t\t\t\nIngrese el número de caja: "; // Se ingresa el número de caja correspondiente
  104. cin>>numCa;
  105. cout<<"\t\t\t\t\nIngrese la cantidad de productos vendidos: "; //Se ingresa la cantidad de productos vendidos
  106. cin>>venta;
  107. cout<<"\t\t\t\t\nIngrese la cantidad total en efectivo: $"; //Se ingresa la cantidad total de la caja
  108. cin>>total;
  109. system("cls");
  110. cout<<"\t\t\t\t***********************************************************"<<endl;
  111. cout<<"\t\t\t\t*          Informe registrado exitosamente               *"<<endl;
  112. cout<<"\t\t\t\t***********************************************************"<<endl;
  113. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  114. cout<<"\t\t\t\t***********************************************************"<<endl;
  115. cout<<"\t\t\t\t";
  116. getche();
  117. system("cls");
  118. guardarInfo<<fechaIn<<" "<<nomIn<<" "<<numCa<<" "<<venta<<" "<<total<<"\n"; //Se guardan los datos en el archivo .txt que le pedimos al usuario
  119. guardarInfo.close();
  120. }
  121.  
  122. void modificarPro(){ //Función para modoficar los productos
  123. ifstream modificarPro; //Comando para abrir archivo .txt en forma de lectura
  124. //Declaración de variables
  125. string nom, codPro, codProCam; //variables para guardar los datos de tipo string
  126. float precio, existencias, precioCambio, existenciasCambio; // variables para guardar los datos de tipo float
  127. modificarPro.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar
  128. ofstream aux("mod.txt", ios::out); //Creamos un nuevo archivo donde se almacenaran los cambios
  129. if (modificarPro.is_open()){ //Evaluamos si se pudo abrir el archivo .txt
  130. system("cls");
  131. cout<<"\t\t\t\t***********************************************************"<<endl;
  132. cout<<"\t\t\t\t*                    Modificar datos                      *"<<endl;
  133. cout<<"\t\t\t\t***********************************************************"<<endl;
  134. cout<<"\t\t\t\t\nIngrese el código del producto a modificar: ";
  135. cin>>codProCam; //Variable para buscar el producto a modificar por medio del código
  136. modificarPro>>nom; // Se almacena el nombre del producto para poder imprimir los datos buscados
  137. while(!modificarPro.eof()){ //while que nos permite cambiar los datos solo sí el archivo .txt tiene datos
  138. modificarPro>>codPro; //Se almacena el codigo del producto
  139. modificarPro>>precio; //Se almacena el precio del producto
  140. modificarPro>>existencias; //Se almacena la existencia del producto
  141. if(codPro == codProCam){ //Se verifica que el código a buscar es igual al alguno del archivo .txt
  142. cout<<"\t\t\t\t\nDigite el nuevo precio del producto: $";
  143. cin>>precioCambio;
  144. cout<<"\t\t\t\t\nDigite el nuevo número de existencias del producto: ";
  145. cin>>existenciasCambio;
  146. aux<<nom<<" "<<codPro<<" "<<precioCambio<<" "<<existenciasCambio; //Se guardan los datos modificados en el nuevo archivp .txt llamado mod.txt
  147. system("cls");
  148. cout<<"\t\t\t\t***********************************************************"<<endl;
  149. cout<<"\t\t\t\t*          Archivos guardados correctamente               *"<<endl;
  150. cout<<"\t\t\t\t***********************************************************"<<endl;
  151. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  152. cout<<"\t\t\t\t***********************************************************"<<endl;
  153. cout<<"\t\t\t\t";
  154. getche();
  155. system("cls");
  156. } else{ //Mensaje en dado caso que no se puedan realizar los cambios
  157. cout<<"\t\t\t\t\nNo se pudieron relizar los cambios.";
  158. aux<<nom<<" "<<codPro<<" "<<precio<<" "<<existencias; //se dejan los datos anteriores en el nuevo archivo
  159. cout<<"\t\t\t\t***********************************************************"<<endl;
  160. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  161. cout<<"\t\t\t\t***********************************************************"<<endl;
  162. cout<<"\t\t\t\t";
  163. getche();
  164. system("cls");
  165. }
  166. modificarPro>>nom;
  167. }
  168. modificarPro.close(); //Cerramos el archivo de letura que nos sirvió para buscar
  169. aux.close(); //Cerramos el archivo nuevo llamado mod.txt
  170. remove("productos.txt"); //Elinamos el archivo antiguo
  171. rename ("mod.txt", "productos.txt"); //Llamamos igual que el antiguo archivo .txt para no tener problemas con las demás funciones
  172. }else{ //Mensaje si no se puede abrir el archivo .txt
  173. cout<<"\t\t\t\tError"<<endl;
  174. cout<<"\t\t\t\t***********************************************************"<<endl;
  175. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  176. cout<<"\t\t\t\t***********************************************************"<<endl;
  177. cout<<"\t\t\t\t";
  178. getche();
  179. system("cls");
  180. }
  181.  
  182. void eliminarPro(){
  183. ifstream modificarPro;
  184. system("cls");
  185. string nom;
  186. string codPro;
  187. string codProCam;
  188. eliminarPro.open("productos.txt", ios::in); //Abrimos el documento .txt creado en la función de agregar
  189. ofstream aux("elim.txt", ios::out); //Creamos un nuevo archivo donde se almacenaran los cambios
  190. if (eliminarPro.is_open()){ //Evaluamos si se pudo abrir el archivo .txt
  191. system("cls");
  192. cout<<"\t\t\t\t***********************************************************"<<endl;
  193. cout<<"\t\t\t\t*                    Eliminar datos                       *"<<endl;
  194. cout<<"\t\t\t\t***********************************************************"<<endl;
  195. cout<<"\t\t\t\t\nIngrese el código del producto a eliminar: ";
  196. cin>>codProCam; //Variable para buscar el producto a eliminar por medio del código
  197. eliminarPro>>nom; // Se almacena el nombre del producto para poder imprimir los datos buscados
  198. while(!eliminarPro.eof()){ //while que nos permite eliminar los datos solo sí el archivo .txt tiene datos
  199. eliminarPro>>codPro; //Se almacena el codigo del producto
  200. if(codPro == codProCam){ //Se verifica que el código a buscar es igual al alguno del archivo .txt
  201. cout<<"\t\t\t\t\nEliminado correctamente!!**";
  202. sleep(2);
  203. system("cls");
  204. cout<<"\t\t\t\t***********************************************************"<<endl;
  205. cout<<"\t\t\t\t*          Archivos guardados correctamente               *"<<endl;
  206. cout<<"\t\t\t\t***********************************************************"<<endl;
  207. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  208. cout<<"\t\t\t\t***********************************************************"<<endl;
  209. cout<<"\t\t\t\t";
  210. getche();
  211. system("cls");
  212. } else{ //Mensaje en dado caso que no se puedan realizar los cambios
  213. cout<<"\t\t\t\t\nNo se pudieron relizar los cambios.";
  214. aux<<nom<<" "<<codPro; //se dejan los datos anteriores en el nuevo archivo
  215. cout<<"\t\t\t\t***********************************************************"<<endl;
  216. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  217. cout<<"\t\t\t\t***********************************************************"<<endl;
  218. cout<<"\t\t\t\t";
  219. getche();
  220. system("cls");
  221.        }
  222. eliminarPro>>nom;
  223. }
  224. eliminarPro.close(); //Cerramos el archivo de letura que nos sirvió para buscar
  225. aux.close(); //Cerramos el archivo nuevo llamado mod.txt
  226. remove("productos.txt"); //Elinamos el archivo antiguo
  227. rename ("elim.txt", "productos.txt"); //Llamamos igual que el antiguo archivo .txt para no tener problemas con las demás funciones
  228.   }
  229. }
  230.  
  231. void buscarInfo(){ //Función para buscar los informes en el archivo .txt llamado Informe de caja
  232. system("cls");
  233.    ifstream guardarInfo; //Definimos que la función solo es de lectura
  234. guardarInfo.open("Informe de caja.txt", ios::in); //Abrimos el documento .txt creado en la función de agregarInfo
  235. //Declaración de variables
  236. string nomIn, fechaIn, numCa, numCaCom; // variables donde se van almacenar los datos en forma de string
  237. float venta, total; // variables donde se van almacenar los datos en forma float
  238. system("cls");
  239. cout<<"\t\t\t\t***********************************************************"<<endl;
  240. cout<<"\t\t\t\t*                Buscar informe                           *"<<endl;
  241. cout<<"\t\t\t\t***********************************************************"<<endl;
  242. cout<<"\n\n";
  243. cout<<"\t\t\t\tDigite el número de caja a buscar: ";
  244. cin>>numCaCom; // Se almacena el número de caja a buscar en el archivo
  245. guardarInfo>>nomIn; // Aquí se va almacenar el dato de nombre de la persona que crea el informe
  246. guardarInfo>>fechaIn; // Aquí se va almacenar el dato de la fecha de creación del informe
  247. guardarInfo>>numCa; // Aquí se va almacenar el dato de número de caja
  248. guardarInfo>>venta; // Aquí se va almacenar el dato de números de prodcutos vendidos
  249. guardarInfo>>total; // Aquí se va almacenar el total obtenido al final del día
  250. if(numCaCom == numCa){ //Se compara si el número de caja ingresado es igual al que se busca
  251. //Se muestran los datos si el número de caja ingresado existe
  252. cout<<"\t\t\t\t***********************************************************"<<endl;
  253. cout<<"\t\t\t\t- Nombre del trabajador: "<<nomIn<<endl;
  254. cout<<"\t\t\t\t- Fecha de creación "<<fechaIn<<endl;
  255. cout<<"\t\t\t\t- Número de caja: "<<numCa<<endl;
  256. cout<<"\t\t\t\t- Cantidad de productos vendidos: "<<venta<<endl;
  257. cout<<"\t\t\t\t- Total en efectivo: $"<<total<<endl;
  258. cout<<"\t\t\t\t***********************************************************"<<endl;
  259. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  260. cout<<"\t\t\t\t***********************************************************"<<endl;
  261. cout<<"\t\t\t\t";
  262. getche();
  263. system("cls");
  264. }else{
  265. // Mensaje si el dato es erroneo o no existe
  266.     cout<<"\t\t\t\tDato no encontrado o no existe en la base de datos"<<endl;
  267.     cout<<"\n\n";
  268. cout<<"\t\t\t\t***********************************************************"<<endl;
  269. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  270. cout<<"\t\t\t\t***********************************************************"<<endl;
  271. cout<<"\t\t\t\t";
  272. getche();
  273. system("cls");
  274. }
  275. guardarInfo.close(); // Cerramos el archivo .txt
  276. }
  277.  
  278. void verInfo(){ //Función para ver todo los datos agregados de informes
  279. ifstream verInfo; //Definimos que la función solo es de lectura
  280. verInfo.open("Informe de caja.txt", ios::in);
  281. //Declaración de variables
  282. string nomIn, fechaIn, numCa; // variables donde se van almacenar los datos en forma de string
  283. float venta, total; // variables donde se van almacenar los datos en forma float
  284. verInfo>>nomIn;
  285. while(!verInfo.eof()){
  286. verInfo>>fechaIn;
  287. verInfo>>numCa;
  288. verInfo>>venta;
  289. verInfo>>total;
  290. cout<<"\n\n";
  291. cout<<"\t\t\t\tNombre del empleado___________________: "<<nomIn<<endl;
  292. cout<<"\t\t\t\tFecha de creación_____________________: "<<fechaIn<<endl;
  293. cout<<"\t\t\t\tNúmero de caja________________________: "<<numCa<<endl;
  294. cout<<"\t\t\t\tCantidad de productos vendidos________: "<<venta<<endl;
  295. cout<<"\t\t\t\tTotal en efectivo_____________________: $"<<total<<endl;
  296. verInfo>>nomIn;
  297. }
  298. verInfo.close();
  299. cout<<"\n\n";
  300. cout<<"\t\t\t\t***********************************************************"<<endl;
  301. cout<<"\t\t\t\t*          Presione cualquier tecla para volver           *"<<endl;
  302. cout<<"\t\t\t\t***********************************************************"<<endl;
  303. cout<<"\t\t\t\t";
  304. getche();
  305. system("cls");
  306. }
  307.  
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:

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.


« Última modificación: 11 Abril 2022, 14:20 pm por fary » En línea

fary


Desconectado Desconectado

Mensajes: 1.084



Ver Perfil WWW
Re: problema de c++
« Respuesta #1 en: 11 Abril 2022, 14:24 pm »

Creo que te falta cerrar la función  modificarPro  con un '}'. ¿Puede ser?.


En línea

Un byte a la izquierda.
behindfa21

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: problema de c++
« Respuesta #2 en: 12 Abril 2022, 08:28 am »

Si era eso, muchas gracias me salvaste, es que yo buscaba el problema en la funcion de eliminar y no sabia que estaba arriba pero ya lo pude solucionar, muchas gracias brot!!
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