Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Kougami en 12 Enero 2017, 23:42 pm



Título: [DUDA] Guardar datos introducidos
Publicado por: Kougami en 12 Enero 2017, 23:42 pm
Buenas,
Escribia para preguntaros una duda, tengo que hacer un programa que pida una serie de numeros psitivos al usuario y cada numero esta separado del siguiente por un salto de linea hasta que se introduzca un numero negativo.
Mi duda viene a la hora de guardar esos numeros, porque despues tengo que hacer operaciones con cada uno de los numeros. Habia pensado ir guardandolos en un archivo y luego cada vez que tenga que operar, acceder a ese archivo, leer el numero y realizar las operaciones necesarias, pero no se si asi podré leer todos los numeros introducidos.

Muchas gracias de antemano


Título: Re: [DUDA] Guardar datos introducidos
Publicado por: engel lex en 12 Enero 2017, 23:47 pm
por qué no podrías leerlos así? asegurate de hacer una estructura para guardar y cargar, por ejemplo colocas todo en un array antes de salvar, al guardar colocas primero el numero de elementos y luego el contenido, esto te permitirá crear un array del tamaño correcto al cargar y tener todo bien organizado


Título: Re: [DUDA] Guardar datos introducidos
Publicado por: Kougami en 12 Enero 2017, 23:54 pm
Habia pensado en hacerlo con un array, pero no se de que tamaño seria, porque si declaro un array y dejo vacios los corchetes, [], significa que el array tiene un tamaño indefinido??


Título: Re: [DUDA] Guardar datos introducidos
Publicado por: engel lex en 13 Enero 2017, 00:00 am
no, en C/C++ nunca se declara un array de tamaño indefinido


siempre en C debes definir el tamaño, en C++ también, pero tienes la librería standard <vector> que te permite crear arrays dinamicos muy facilmente

en ambos casos si no quieres usar <vector> o estás en C, puedes redimensionar tu array con realloc, calloc, y malloc



Título: Re: [DUDA] Guardar datos introducidos
Publicado por: Kougami en 13 Enero 2017, 00:26 am
Aaaaah, vale, osea seria hacer un struct tVector que contenga el array y una variable contador para saber el tamaño del array no??

Y una cosa, porque si quiero leer numeros hasta introducir un negativo, usando este codigo e introduciendo -1 me sigue pidiendo numeros??
Código
  1. void pedirNumeros() {
  2. cout << "Introduzca los números separados entre sí por un salto de linea (ENTER)." << endl;
  3. cout << "Números: ";
  4. }
  5.  
  6. int leerNumeros(int& num) {
  7. while (!cin.fail()) {
  8. cin >> num;
  9. }
  10. return num;
  11. }


Título: Re: [DUDA] Guardar datos introducidos
Publicado por: engel lex en 13 Enero 2017, 00:29 am
si, seguirá pidiendo numeros, -1 es un int valido, en tal caso num debería ser unsigned int para que dispare el cin.fail



Título: Re: [DUDA] Guardar datos introducidos
Publicado por: Kougami en 13 Enero 2017, 00:44 am
No entiendo lo del unsigned int, pero por ejemplo si introduzco una letra, me sale de ese metodo pero me muestra sin parar un metodo que tengo en caso de error. Como hago para que si meto una letra me muestre solo una vez el metodo para el error?


Título: Re: [DUDA] Guardar datos introducidos
Publicado por: engel lex en 13 Enero 2017, 00:47 am
Citar
Como hago para que si meto una letra me muestre solo una vez el metodo para el error?

no soy adivino y no se que metodo usas...

lo del unsigned int, solo con buscar en google te debería dar todo lo que necesitas saber