|
Mostrar Mensajes
|
Páginas: 1 2 [3] 4
|
22
|
Programación / Programación C/C++ / ¿Cómo leo datos de un fichero para guardarlos en un vector?
|
en: 2 Enero 2019, 20:12 pm
|
Buenas, tengo un vector de tipo "struct", y necesito leer un fichero y que me guarde los datos en un vector. Asumo que tiene que ser algo de este estilo: Libro libro; //es mi struct string nom_fichero = PracticaFinal_opcion1.libros.dat; ifstream f; f.open(nom_fichero); if (f) { while (f >> ??) // el "??" indica que no sé que poner para que lea hasta el fin del fichero. NO PUEDO USAR .eof // { //aquí irían la propia lectura } }
Gracias
|
|
|
24
|
Programación / Programación C/C++ / Re: Guardar una frase en los elementos de un vector
|
en: 8 Diciembre 2018, 19:15 pm
|
Bueno, he conseguido hacerme mi codigo, y ha quedado así: #include <iostream> #include <string> using namespace std;
void Cabecera (void); void SepararPalabras (void);
int main (void) { Cabecera(); SepararPalabras(); return 0; } void Cabecera (void) { cout << "Este programa pide una frase y devuelve enumeradas sus palabras" << endl << endl; return; } void SepararPalabras (void) { string frase; int i, x = 1, n; cout << "Dame una frase: "; getline (cin, frase); for (i = 0; i < frase.length (); i++) { if (isalpha (frase[i])) { cout << x << "-> "; while (isalpha (frase[i])) { frase[i]; cout << frase[i]; i++; } cout << endl; x++; } } return; }
Como véis lleva un contador de las palabras (no lo pedía el enunciado, pero como el ejemplo lo incluía pues lo he puesto). Se me olvidó mencionar que me obligan a gastar estan librerías. Ahora le estoy dando vueltas para que omita palabras repetidas, si se os ocurre algo (y no necesito un código directamente), me sería muy útil.
|
|
|
25
|
Programación / Programación C/C++ / Re: Guardar una frase en los elementos de un vector
|
en: 8 Diciembre 2018, 18:11 pm
|
Mejor di que quieres que te hagan la tarea. El codigo presenta varios problemas, el numero de espacios no puede ser mas de 10, ya que definimos *vector[10], se podria hacer de forma dinamica para aceptar "infinitos" pero eso ya involugra mas codigo. #include<stdio.h> #include<string.h> int main() { char cadena[100]; char *token; char *vector[10]; int i = 0; do { vector[i] = token; printf("%i -> %s\n",i +1,vector [i ]); i++; }while(token != NULL); }
Realmente no quería un código (aunque lo pueda parecer por decir lo de <string>), solo una clave para poder sacarlo, pero gracias de todas formas. Ah, por cierto, no sé lo que son los tokens :/
|
|
|
26
|
Programación / Programación C/C++ / Guardar una frase en los elementos de un vector
|
en: 8 Diciembre 2018, 17:39 pm
|
Buenas, debo de realizar este ejercicio (lo del título es una supuesta forma correcta pero que no sé implementar). El programa debe de pedir una frase al usuario (hasta ahí todo bien), y luego mostrar las palabras que la componen de forma enumerada (y ahí está el problema xD). Debo de usar la librería <string>, como es lógico, y todas las funciones asociadas. Un banco de pruebas sería el siguiente: Dame frase: Esto es una prueba 1 -> Esto 2 -> es 3 -> una 4 -> prueba
|
|
|
27
|
Programación / Programación C/C++ / Re: ¿Por qué no va este código?
|
en: 24 Noviembre 2018, 20:13 pm
|
Bueno, vuelvo con otra duda xD. Esta vez este código no sé por qué no funciona. La función debe de detectar los numeros abundantes dentro de un rango introducido por el usuario (ambos extremos excluidos), y mostrar la suma de ellos. Por ejemplo, entre 1 y 13 debería de dar 12, y da 177. int SumaAbundantes (int x, int y) { int suma = 0, i, div, resultado = 0; cout << "Dame un entero positivo: "; cin >> x; cout << "Dame otro entero positivo: "; cin >> y; for (i = x + 1; i < y; i++) { for (div = 1; div < i; div++) { if ((i % div) == 0) { suma = suma + div; if (suma > i) { resultado = resultado + i; } cout << resultado << endl; } } } cout << "La suma de los numeros enteros abundantes positivos entre " << x << " y " << y << " es " << resultado; return resultado; }
|
|
|
29
|
Programación / Programación C/C++ / ¿Por qué no va este código?
|
en: 24 Noviembre 2018, 17:56 pm
|
Muy buenas, no entiendo por qué en este código solo se opera bien la primera vez que se realiza el bucle. #include <iostream> using namespace std;
int main () { int num = 1; int suma = 0; int div = 1; cout << "Este programa nos dice si un numero entero introducido por teclado es perfecto, abundante o deficiente." << endl << endl; while (num != 0) { cout << "Dame un numero (introduce 0 para salir): "; cin >> num; for (div = 1; div < num; div++) { if ((num % div) == 0) { suma = suma + div; cout << suma; } } if (num == 0) { cout << ""; } else if (suma == num) { cout << "El numero " << num << " es perfecto." << endl << endl; } else if (suma > num) { cout << "El numero " << num << " es abundante." << endl << endl; } else { cout << "El numero " << num << " es deficiente." << endl << endl; } } return 0; }
|
|
|
|
|
|
|