• Jueves 14 de Noviembre de 2024, 17:02

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jose_val

Páginas: [1]
1
C/C++ / Problema con ficheros
« en: Domingo 2 de Enero de 2011, 17:50 »
Hola, he aprendido mucho desde la sombra durante meses en este foro con vuestras respuestas.
Ahora me he tenido que registrar a causa de una piedra que no consigo quitar de mi camino.
Estoy realizando un programa en c++ y tengo un problema donde no doy con la solución.

Se trata de leer un fichero txt y escribir en él, guardando los datos y mediante un menú acceder a listar e introducir datos, hasta aquí todo bien y funcionando. El problema es crear un bucle para buscar una palabra introducida por teclado (esta palabra tiene que encontrarse en el fichero) y lo más gordo es que hay que imprimir por pantalla la linea inferior de la palabra, que en este caso es una cifra y no el nombre que se ha buscado. Me explico mejor...

el fichero txt. tiene que tener este orden:

producto1
cantidad 1

producto2
cantidad2

....

A este fichero se accede perfectamente con un menú, mostrando el contenido por pantalla y con la opción de ingresar datos, todo funciona bien.

Ahora necesito otra opción dentro de switch, buscar mediante una palabra la cantidad de ese producto.

Los datos se almacenan en dos vectores y se escriben correctamente.
Sería, fichero[datos].producto y fichero[datos]cantidad.

Tengo realizado hasta aquí dentro de la opción de case correspondiente....
Código: C++
  1.  
  2. case '3':
  3. char nombre;
  4. cout<<"Introduce el nombre del producto que desea conocer la cantidad"<<endl;
  5. cin>>nombre;
  6. Leer.open("fichero.txt"); // abro para leer el fichero
  7. if (!Leer)
  8. cout<<"El archivo no se pudo abrir!";
  9. else
  10. {
  11. while(!Leer.eof()&& datos<contador)//bucle para leer el fichero
  12. {
  13. getline(Leer,fichero[datos].producto);
  14. Leer>>fichero[datos].cantidad;
  15. Leer.ignore();
  16. n_datos++;
  17. }
  18.  
  19. // aquí debería de ir el código para buscar la palabra e imprimir por
  20. //pantalla la linea siguiente que muestra la cantidad de producto.
  21.  
  22. Leer.close();
  23. break;
  24.  
  25.  

Gracias y feliz año nuevo.

Páginas: [1]