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 - do-while

#421
¡Buenas!

No intentes utilizar la función feof para saber si has llegado al final de un archivo binario. Te puede dar falsos positivos, y la mayor parte de las veces te los dará (no me preguntes porqué), y no podrás leer el contenido del archivo.

Primero tienes que saber el tamaño, en bytes, del fichero (utilizando por ejemplo ftell y fseek), y luego empiezas a leer datos desde el principio hasta alcanzar el numero de bytes que tenga el fichero.

Si no conoces las fuciónes anteriores en www.cplusplus.com encontraras mas información.

¡Saludos!
#422
¡Buenas!

El problema no está en esa función, está en main:
Código (cpp) [Seleccionar]

cout<<"Numero de elementos"<<endl;
cin>>n;


Despues de leer el dato queda, un \n en el flujo de entrada (al menos uno, si después del numero introduces cualquier texto o cosa que se te ocurra también quedara eso).

Después de leer el entero tienes que terminar de leer la línea para luego poder leer datos de forma fiable. Tendrás que hacer algo así:
Código (cpp) [Seleccionar]

while(cin.get() != '\n');


Por cierto. En C++ no uses nunca string.h. No sabremos si te refieres a la ce C o a la de C++. Si quieres utilizar cadenas tipo C++ incluye string y si manejas cadenas tipo C utiliza cstring.

¡Saludos!
#423
¡Buenas!

Aquí cada uno te dirá una cosa distinta. Yo no voy a ser menos  :xD, te recomiendo Debian. Eso de que es complicada y de que tienes que saber latín para usarla es mentira. Si tienes algún problema siempre tienes Google. Otra que he mirado por encima, que es rapidísima y la única que he encontrado en la que no he tenido que apañar los drivers de la tarjeta wifi es Manjaro, basada en Arch.

Yo empecé con Ubuntu, pero muchas veces me daba la impresión de que era muy lenta, pasé a LMDE (la versión basada en Debian de Linux Mint) y al final me he quedado con la madre de todas estas, Debian. Quise hacer lo mismo con Manjaro, pasar a Arch, pero eso de que no tenga instalador es un coñazo. Hasta que no sepa bien como llevar a cabo la configuración previa a la instalación no podré instalarla y a decir verdad, no me apetece nada marearme tanto siendo que existe una cantidad enorme de distribuciones que funcionan bien y no requieren perder tanto tiempo con la instalación.

De todas formas olvidate de lo que he dicho. Prueba una, luego otra, luego otra mas y así hasta que veas una que te guste. Sobre todo, escojas la distribución que escojas, ten siempre a mano una guia o un manual para aclarar dudas y saber mas o menos como funciona, y ten en cuenta, que Google está ahí y que no muerde, las preguntas que te surjan ya las habrá planteado alguien antes que tu, y la respuesta seguro que está en internet.

¡Saludos!
#424
¡Buenas!

Dudo mucho que apt-get vaya a eliminar archivos que hagan falta para el funcionamiento de los paquetes que tengas instalados. De todas formas, si no te fías, siempre puedes instalar elinks e irss para tener un navegador y un cliente de irc que trabajen desde el terminal. Ten en cuenta que aptitude también es un frontend de apt para terminal, así que si te hace falta instalar o recuperar algo desde el terminal siempre tienes herramientas, no tienes porque reinstalar el sistema completo.

¡Saludos!
#425
¡Buenas!

A mi, dependiendo de la distro, las particiones de Windosws 7 me las reconoce como tal o como particiones de Vista. Eso no quiere decir que tengas Windows Vista instalado, sino que simplemente no la reconoce como una partición Windows 7. (Si me equivoco corregidme)

Al haber entrado en modo recovery parece que te has cargado el grub. Puedes recuperarlo, entre otros métodos,  utilizando Rescatux (una live-CD), o siguiendo los pasos de este enlace. El ultimo método no lo he probado, pero aprovechando que tienes el Live-USB de Backtrack podrías probar y nos cuentas. Ahora ya sabes que una de las particiones de Windows es una partición para recuperar los valores de fabrica y la otra es el sistema en si. Y al parecer, entrar en modo recuperación se carga el grub...

Si el problema no es este, no tengo ni idea de que es lo que le pasa a tu ordenador.

¡Saludos!

PD: Después de restaurar Grub, si tienes mas de una distro instalada pero solo te aparece una de ellas en el menu de grub, no te preocupes. Entras en esta y desde el terminal ejecutas (con permisos de administrador) update-grub2 y te actualizará el grub con todos los sistemas que detecte en el disco duro.

¡Saludos!
#426
Cita de: Fox_Neo en 11 Febrero 2014, 16:03 PM
Lo que no enseñan es lo que hay bajo la mesa.........

Que este experimento truco tiene dicho han ya...

La fuerza de controlar tan fácil no es. Hazlo o no lo hagas, pero no lo intentes. Ya lo dijo el gran maestro Yoda. Y este tipo lo ha hecho. Eso si, creo que ha recurrido al lado oscuro. El camino oscuro mas fácil y cómodo es...  :xD

¡Saludos!

#427
Juas, va a ser divertido cuando para putear al vecino, en lugar de rayarle el coche, se lo dejes inmovilizado con algun aparato comprado, o construido a partir de planos que circulen por internet...

Que pocas luces tienen algunos...
#428
¡Buenas!

Lo que no debes hacer es asignar una cantidad de memoria predeterminada a una cadena, lo hagas asignando esa memoria de forma dinamica o estatica, ya que si defines, por ejemplo, una longitud de 1000 caracteres puedes estar desaprobechando memoria si se introduce una cadena de menor longitud o puedes estar perdiendo informacion si tiene mayor longitud.

Lo que tienes que hacer es leer caracteres con una cadena de un tamaño determinado (por ejemplo 10 caracteres) y mediante realloc añadirlos a la linea que introduzcas. ¿Como sabras cuando has terminado de leer una linea? utiliza fgets, deja de leer cuando detecta un '\n' y lo almacena en la cadena:


hacer
{
    leer_cadena(lector);

    si(reasignar_memoria(linea, longitud(linea) + longitud(lector) + 1)
    {
        concatenar(linea,lector);
    }
}
mientras(lector[longitud(lector) - 1] != '\n');

linea[longitud(linea) - 1] = '\0';


Creo que es la unica manera que tienes de leer el contenido de una linea sin saber de antemano cual es la longitud maxima que puede tener.

¡Saludos!
#429
¡Buenas!

Una respuesta clara, tecnica y concisa, como tiene que ser. Te has expresado muy bien.

¡Muchas gracias!
#430
¡Buenas!

No llevo ni 12 horas con LMDE (la última versión disponible) y ya tengo problemas. Ya lo he instalado, he consguido configurar el controlador de la dichosa Broadcom he instalado cairo dock y he comprobado que no podía inicar sesión utilizándolo (esto lo tengo pendiente por cabezonería), Steam sin problemas (aun no he instalado ningún juego)...

El problema que me trae aquí es la RAM. Me he puesto a ver una serie online, a instalar paquetes y a curiosear webs, todo a la vez, y de repente el sistema se ha transfomado en un caracol con un esguince. Lentísimo y tardaba una barbaridad en responder. Cuando he mirado la temperatura uno de los núcleos alcanzaba 93ºC y el otro 90ºC y el monitor del sistema me ha contado que de 4GB de RAM solo quedaba libre el 2% y de los 4GB de swap se estaba usando la mitad.

Llevo al rededor de una hora haciendo funcionar el ordenador al mínimo y la temperatura ya es normal, pero la ram sigue al 98% y la swap al 50%.

¿Podéis ayudarme a encontrar (y si se puede, a solucionar) el problema? (A lo mejor lo que tengo que hacer es jubilar el ordenador, no lo se...)

Aquí os dejo las características del enjendro este...

Intel Core 2 Duo a 2.2 GHz
4GB de RAM
Y la grafica es expres chipset family yo que se que. La integrada esta que traen los portatiles... (no se como mirarlo... ya lo descubriré)
El controlador de la gráfica puedo deciros que es este: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller

Ya se que la información no es muy precisa, si os hace falta algo mas concreto avisad y ya os contaré.

¡Saludos!

He seguido investigando un poco y tengo un candidato a culpable. El proceso mate-settings-daemon se come casi 2GB de RAM.
________________________________________________________________________________

Reinicie y despues de haber tenido funcionando el equipo mas de 18 horas no he vuelto a tener el problema...