Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - eferion

#151
Programación C/C++ / Re: Ayuda guardado de archivo
27 Noviembre 2014, 15:10 PM
solo un pequeño detalle tonto. No tiene nada que ver con la incidencia, pero aun así:

Esto:

Código (cpp) [Seleccionar]

   vector<string> text = load_vector(filename);
   sort(text.begin(), text.end());
   text.erase(unique(text.begin(), text.end()), text.end());


es equivalente a:

Código (cpp) [Seleccionar]
set<string> text = load_vector(filename);

O, si no quieres que load_vector devuelva un set:

Código (cpp) [Seleccionar]

vector<string> temp = load_vector(filename);
set<string> text( temp.begin( ), temp.end( ) );


Esto es así porque std::set es un contenedor que:

* Mantiene sus elementos debidamente ordenados
* No admite duplicados

Matas 2 problemas de un plumazo.

Eso sí, dos cosas a tener en cuenta:

* std::set no tiene push_back, no tendría sentido. En su lugar hay que usar "insert".
* std::set no incorpora el operador de indización "[]", para acceder a sus elementos se puede hacer uso de bucles tipo:

Código (cpp) [Seleccionar]

for ( auto it = text.begin( ); it != text.end( ); ++it )
 std::cout << *it << std::endl;


O si te gustan más, también lo puedes hacer con lambdas:

Código (cpp) [Seleccionar]

std::for_each( text.begin( ), text.end( ),
              []( const std::string& str )
              { std::cout << str << std::endl; } );





Y hablando ahora de tu problema... deberías asegurarte de que el archivo lo estás creando donde piensas. Prueba a poner la ruta completa. Puede ser que te esté intentando crear el archivo en otro directorio (el de trabajo, que no tiene que coincidir con el directorio donde se encuentra el ejecutable).
#152
Lo que estás buscando se llama "splash screen".

Busca documentación en Internet sobre el tema porque no es algo trivial que se pueda explicar en el foro.

Un saludo.
#153
Programación C/C++ / Re: Elevacion cubica
27 Noviembre 2014, 01:00 AM
Elevar al cubo se hace con:

resultado = pow(r2, 3);

no con

resultado = (r2),pow(2, 3);
#154
Programación C/C++ / Re: Elevacion cubica
26 Noviembre 2014, 22:24 PM
Cita de: Jaua10 en 26 Noviembre 2014, 21:31 PM
El problema es que el programa no compila  y mi codigo es el siguiente:

Te vuelvo a preguntar porque no me has respondido ¿Has probado a incluir -lm en las opciones de compilación?
#155
Programación C/C++ / Re: Elevacion cubica
26 Noviembre 2014, 21:25 PM
El problema es que hay compiladores que no enlazan automáticamente con la librería matemática y ese enlace hay que hacerlo manualmente...
#156
Programación C/C++ / Re: Elevacion cubica
26 Noviembre 2014, 21:08 PM
has probado lo que te he comentado de compilar con la opción -lm???
#157
Programación C/C++ / Re: Elevacion cubica
26 Noviembre 2014, 16:53 PM
Cita de: Jaua10 en 26 Noviembre 2014, 16:49 PM
me suelta este error

http://prntscr.com/5acmop

Lógico y normal. Te sale ese error porque no encuentra la implementación de una función con la firma void pow(int, int)

Además... se supone que "pow" debe devolver un valor... si no, ¿dónde se supone que va a almacenar el resultado? Los argumentos se los estás pasando por valor, no por punteros, por lo que no puede modificar esos valores.

Quita la declaración de ese pow. Si no te compila la aplicación es porque necesitarás añadir la librería math a tu proyecto de forma manual... quizás tengas que poner algo tal que "-lm" (sin comillas) en las directivas de compilación.

PD.: dado que la versión "pow" de math.h devuelve el resultado en forma de return, estaría bien que almacenases dicho valor en alguna variable, no se quizás algo tal que:

double resultado = pow( base, 3 );
#158
Programación C/C++ / Re: Elevacion cubica
26 Noviembre 2014, 16:36 PM
Cita de: Shell Root en 26 Noviembre 2014, 16:31 PM
Se necesita declarar la función pow antes del main

Y entonces para qué sirve #include <math.h> ???
#159
Bienvenido al foro.

Un par de detalles:


  • El código tienes que "decorarlo" usando las etiquegas GeSHi, se leerá mejor y evitarás que combinaciones tipo [ i ] (sin espacios) sean sustituidas por etiquetas html
  • fflush está pensado para vaciar los bufferes de salida no los de entrada. Aplicar fflush a un buffer de entrada puede dar un resultado indeterminado.
  • "cdn" tiene tamaño 100 y para los nombres reservas únicamente 20 caracteres... lo lógico es que fuesen iguales. ¿Estás seguro que ningún nombre supera los 19 caracteres de longitud?

Además:

profesor->listado_alumnos = (char **)malloc(cant * sizeof(char));

el sizeof está mal... si estas reservando memoria para un puntero doble, el sizeof tiene que corresponderse con un puntero, no con un char... sino estás reservando memoria de menos. Un char son 8 bits y un puntero 32 (o 64).

La reserva debería hacerse así:

profesor->listado_alumnos = (char **)malloc(cant * sizeof(char*));

Imagino que el problema que tienes se encuentra ahí, ya me lo confirmarás.

Un saludo.
#160
de nada hombre.

suerte con tu proyecto :)