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 - Don Pollo

#31
Programación C/C++ / Re: ejercicios en c
15 Junio 2011, 19:27 PM
Primeramente deberás mirar si la longitud de la cadena es múltiplo de 8. Cuando ya hayas solucionado esto, puedes recorrerla con dos contadores, uno para contar los caracteres hasta el guión, y otro contando los caracteres hasta que toque el espacio.

Para saber si es múltiplo de 8 haces la comparación i%8==0, ya que el % lo que te devuelve es el resto de la división.
#32
Como habéis podido leer, ando algo verde aún con lo del manejo de archivos y tal  :-\

Pero bueno, ya me habéis solucionado la duda, muchas gracias a los dos!
#33
Y para que me podría servir convertir un unsigned int en un char*?
#34
Veréis, tengo el siguiente código que nos ha dejado el profesor:

Código (c++) [Seleccionar]
/*

Si el fichero es nuevo, le metemos los datos para la tabla, y la cubeta que nos dicen.

Reservamos memoria para la cubeta.

*/

void ficheroDisperso::crear(string& url, unsigned int tamTabla, unsigned int tamCubeta)

{

if(this->fDisp.is_open())

this->fDisp.close();

if(this->cub.datos == NULL)

delete[] this->cub.datos;



this->fDisp.open(url.c_str(), ios::in | ios::out | ios::binary | ios::trunc);



if(!this->fDisp.is_open())

throw excepciones::fichNoAbierto();



this->tamTabla=tamTabla;

this->tamCubeta=tamCubeta;

cub.datos = new Pueblo[this->tamCubeta];



this->fDisp.write(reinterpret_cast<char *>(&this->tamTabla), sizeof(unsigned int));

this->fDisp.write(reinterpret_cast<char *>(&this->tamCubeta), sizeof(unsigned int));



for (unsigned int i=0; i <tamTabla; ++i)

{

this->fDisp.write(reinterpret_cast<char *>(&cub.tam), sizeof(unsigned int));

this->fDisp.write(reinterpret_cast<char *>(cub.datos), sizeof(Pueblo)*tamCubeta);

}

}


Pero no entiendo las líneas que ponen esto:

Código (c++) [Seleccionar]
this->fDisp.write(reinterpret_cast<char *>(&this->tamTabla), sizeof(unsigned int));

this->fDisp.write(reinterpret_cast<char *>(&this->tamCubeta), sizeof(unsigned int));


Podrían decirme cuál es su finalidad? Si no creo mal, podría ser algo de un casting?

Gracias de antemano!  ;D
#35
Si lo necesitas, escríbelo, y si tienes alguna duda, nos preguntas.
#36
No creo que haya forma de saber si el fichero se ha abierto bien con una variable string pero, tengo una duda de tu código: por qué pones endl's antes y después del cin? si lo que este comando haga no lo muestra por pantalla
#37
Si lo creas como puntero, eres tú el que le asigna la memoria y, por ende, eres tú el que debes eliminarlo con un "delete" cuando ya no te haga falta. Si no lo creas como puntero, se crea y se destruye automáticamente.
#38
Como ya te han dicho, aquí no se hacen deberes. En todo caso, las funciones que te piden son demasiado básicas como para que te las resolvamos y, como te han dicho, si no sabes hacerlas quizás no deberías aprobar la asignatura.
#39
Para insertar entre el nodo1 y el nodo2 lo que debes hacer es crear un nuevo nodo3 y hacer que el puntero de éste apunte al mismo sitio donde apunta el nodo1, depués haces que el puntero del nodo1 apunte al nuevo nodo3 y ya tienes tu nuevo nodo metido en medio de los dos anteriores.

Es importante que lo hagas en el orden que te he dicho ya que si no se perdería el puntero que apunta al nodo2 y la lista se partiría en dos.
#40
Quizás me equivoque, pero el problema sólo te pide que digas si es una parábola, una hipérbole o elipse, no te pide en ningún momento que las dibujes.