[DUDA] Guardar datos introducidos

Iniciado por Kougami, 12 Enero 2017, 23:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Kougami

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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Kougami

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??

engel lex

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

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Kougami

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 (cpp) [Seleccionar]
void pedirNumeros() {
cout << "Introduzca los números separados entre sí por un salto de linea (ENTER)." << endl;
cout << "Números: ";
}

int leerNumeros(int& num) {
while (!cin.fail()) {
cin >> num;
}
return num;
}

engel lex

si, seguirá pidiendo numeros, -1 es un int valido, en tal caso num debería ser unsigned int para que dispare el cin.fail

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Kougami

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?

engel lex

CitarComo 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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.