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 - Akai

#261
Estamos a 1 de abril. No hay nada más que decir en este topic.
#262
El problema, creo que es porque el flag fail se establece si se produce un error de lógica interna en el stream.

Prueba con good negado (good está establecido si no hay ningún fallo, y cae si se presenta algún fallo) en vez de fail (que únicamente aparece con errores de lógica interna del stream)
Código (cpp) [Seleccionar]
if(!cin.good())

EDIT:

Añado, otra alternativa es usar badbit en vez de fail. Badbit comprueba los fallos en la operación de entrada / salida. good negado los comprueba todos (fail, badbit, eofbit), pero si no te interesa tanta información, usar únicamente badbit si no me equivoco debido al sueño en estos momentos debería darte la solución.
#263
El problema es que medio mundo sabe ya de dicho portátil, y el otro medio va camino de enterarse.
#264
Vivan los portátiles corporativos sin discos duros cifrados.
#265
Cita de: Xafi en 30 Marzo 2011, 14:55 PM
como dice nuestro compañero Akai".
C++ es C mejorado.

NO, eso no lo digo yo. Yo digo que es AMPLIADO, es decir, C++ (C incrementado) es C + añadidos.

NO me vas a ver decir que tal o cual lenguaje sea mejor que otro por la AUSENCIA de herramientas (mirando desde C++ a C). Sería como decir que Java es mejor que C/C++ porque no tiene manejor manual de memoria.

Por otra parte, ni de broma pretendía empezar un flamewar por citar el hecho que C++ incluye a C para comentar que dicho modo "hibrido entre C y C++" no tiene demasiado sentido _(desde mi punto de vista)_ como tal.

Siento que se me haya malinterpretado.

EDIT: Añado:
Cita de: xD4RIOx en 30 Marzo 2011, 15:31 PM
Ok, es soportado dentro de C++, pero no forma parte de su idea.
En efecto, puede que no forme parte de su idea, y a planteamientos de dicho ámbido sobre el lenguaje no entro. Pero creo que pese a quizás no formar parte de su idea el hecho que como herramienta si es posible usarse, creo que debería comentarse.
#266
Cita de: xD4RIOx en 30 Marzo 2011, 14:21 PM
es un híbrido entre C y C++

C++ contiene todo lo de C (cstdio, cstdlib etc etc etc), no existe un hibrido entre ambos si estás programando en C++
#267
Puff... Ahí ya no sabría decirte tan claro. Principalmente la experiencia va enseñándote esos truquillos con el tiempo. Por otro lado, tener en cuenta los costes asimptóticos de tus algoritmos también te va dando esa visión.

Luego hay libros que se meten bastante en ese tema pero el único que conozco es Code Complete 2, de Steve McConnel. En si es un libro dedicado a desarrollo de software, pero incluye un capítulo de optimización y "tunning" de código, (no tengo enlace para descargarlo, pero estoy seguro que no será dificil encontrarlo).

Por otro lado, quizá sea suerte mía que en la facultad haya tenido hasta ahora, en las asignaturas relacionadas con la programación, profesores bastante exigentes con el tema de los costes.
#268
Programación C/C++ / Re: Consulta [C++]
29 Marzo 2011, 19:09 PM
El problema, Sagrini, es que pese a que atoi es parte del estándar, itoa no lo es. Y eso puede dar problemas. Usar sprintf o sstreams (string-streams) solventa el tema sin recurrir a salirse del estandar.

Sobre itoa en http://cplusplus.com/reference/clibrary/cstdlib/itoa/

Portability
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

A standard-compliant alternative for some cases may be sprintf:
sprintf(str,"%d",value) converts to decimal base.
sprintf(str,"%x",value) converts to hexadecimal base.
sprintf(str,"%o",value) converts to octal base.
#269
Si, a eso me refería. Y no, no te ahorras un if. Bueno, quizá en el código si, pero en ejecución ahorras iterar comprobando cada vez.
#270
Un consejo, Xafi:
Si esta comprobación
Código (cpp) [Seleccionar]
  if(i<10)name[j+1]='0';
                else name[j+1]=t[0];
                if(i<10)name[j+2]=t[0];
                else name[j+2]=t[1];


La sacases fuera del bucle, ganarías en velocidad. De hecho, podrías hacer dos bucles, uno de 0 a 9, otro de 10 en adelante.

Simplemente un consejo para evitar comprobaciones que no tienen sentido una vez pasas la frontera del 10