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
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
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??
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
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??
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;
}
si, seguirá pidiendo numeros, -1 es un int valido, en tal caso num debería ser unsigned int para que dispare el cin.fail
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?
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