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

#581
Utilizar o no utilizar escáneres depende principalmente del objetivo de la auditoria. Mas alla que un escáner no puede competir contra la creatividad de una persona, pueden ser útiles para comprobar que no estas dando nada por sentado. Aclarar que con objetivo me refiero a lo que se quiere lograr, mas alla de la buena u mala intención que puede haber en ello.

Ahora bien, si la idea es intentar pasar lo mas desapercibido posible, un escáner es la ultima opción. Mas allá de la flexibilidad que pueda proveer algún software en particular, siempre llaman la atención mas de lo que deberían.

Saludos
#582
CitarJumm ahora me doy cuenta que toy grave  :xD  cuando getline setea el failbit las operaciones siguientes fallan? Eso no lo tengo claro, crei q setear el failbit no tenia importancia, que solo era para cuando uno quiera verificar errores y todo eso...

Si, tiene importancia. Las operaciones siguientes realizadas en ese stream fallaran hasta que se vuelva al estado normal de ese stream.

En cuanto al código, lo depuraste? tienes idea de mas o menos donde se produce el error? si sabes donde se produce la falla, especifica las lineas.
Si no encontraste la falla en la logica, prueba revisando los valores de los datos paso por paso hasta encontrar el problema.
Mañana lo miro atentamente a ver que encuentro, pero mientras prueba depurando.

Saludos!

#583
Yo no tendría problema con un hilo en el cual se planteen ejercicios para evaluar distintas formas de resolver problemas. El asunto es que si se hacen ejercicios de complejidad baja a media, a la larga quedara una guía de tareas incluso con múltiples opciones para los mas vagos.

También esta el drama que hay que estar controlando a cada rato que ningún usuario nuevo plantee un ejercicio en ese hilo, porque si no seria muy fácil que un usuario se registre, plantee un ejercicio, y como resultado obtenga la tarea para el y para todo su curso.

Por esas dos cosas, lo ideal seria que hagan algo así en el subforo de ejercicios, que de hecho ya existen hilos similares y no solo de C/C++, si no de varios lenguajes.

De paso cierro ya que la duda principal esta resuelta y el hilo entro en offtopic hace rato.

Saludos!
#584
Código (cpp) [Seleccionar]
    for (int i=0;ent;i++){
        ent.getline(name[i],31,':');
        cout<<name[i];
        ent>>age[i];
        cout<<age[i]<<endl;
        ent.ignore();
        cout<<i<<endl;
    }



El problema es que en este tipo de lecturas es que encontras el final cuando intentas leer en el, y no cuando leíste el ultimo elemento. Por eso mismo en este tipo de casos se comprueba o bien el valor exitoso del método utilizado en la lectura u métodos similares a ::eof. De lo contrario, imprimis ya pasado el EOF del archivo y por esa razon el ciclo tiene iteraciones de mas.

En cuanto al primer código, getline es bastante particular y setea failbit por varias razones. En el caso que se extraigan n-1 caracteres y no se encuentre el delimitador, failbit se setea por tanto las siguientes operaciones pueden fallar.

Código (cpp) [Seleccionar]
    for (int i=0;ent;i++){
        ent.getline(reg[i],30);//Aca deberia extraer los 29 caracteres y agregar a reg un '\0'
       //logic error. failbit set
        if(ent.fail())//if failbit set
        ent.clear();//all flags set to default =goodbit
        ent.ignore();//Aca ignorar el ':'
        ent>>edad[i];//Pes leer la edad
        ent.ignore();//Ignorar el fin de linea...
    }


Obviamente esa no es la solución ya que es ignorar el error, pero es simplemente para que veas que por ahí van los tiros.

Lo ideal es parsear el archivo correctamente sin dejar nada al azar, pero igualmente la segunda solucion que pusiste puede funcionar correctamente siempre que se chequeen los flags de error y el final del archivo. También ten en cuenta que ignore tiene parámetros que puedes utilizar para sacarle mas provecho y evitar que ignore posibles datos necesarios.

::fail
::bad
::eof

Me dijiste antes que tenias otras dudas así que cualquier cosa ya sabes.

Saludos!
#585
Cita de: mil39 en 22 Julio 2010, 01:05 AM
;D buen aporte , alguien me dice, por que libro puedo empezar, partiendo de una base de 0  :(
Gracias.

Por este:

CitarName: Cómo Programar en C/C++
Author(s): Harvey M. Deitel, Paul J. Deitel
Hardcover: 1072 pages
Publisher: Prentice Hall; 2nd edition (February 1998)
Language: Spanish
ISBN-10: 9688804711
ISBN-13: 978-9688804711

Saludos!
#586
Skarface, te he agregado las etiquetas GeSHi a tu ultimo post. Para la próxima que pongas código, hazlo así:

C
[code=c]codigo[/code]

C++
[code=cpp]codigo[/code]
#587
A lo mejor no tendrías que emitir juicios tan apresurados. Me temo que eres un usuario demasiado nuevo para conocer todo el trabajo que han hecho y el que sigue haciendo para mantener el foro en linea, por lo tanto decir que no lo arreglan porque solo se preocupan por el "merchandising" me parece un comentario absurdo y un tanto malicioso.

Si tienes soluciones efectivas para generar un buscador eficiente en un foro tan grande, le envías un pm a alguno del staff y mientras sea factible posiblemente te hagan caso, ahora si lo que planteas es utilizar el buscador de Google, bueno, esta claro que no eres el primero en mencionarlo ni tampoco es una idea que te vaya a convertir en ganador del premio Turing.

Por lo pronto estas haciendo comentarios que no solo no corresponden con la realidad, si no que ademas no tienen nada que hacer en este hilo. En todo caso si crees que es esfuerzo lo que falta, en vez de sacar screenshots (¿?) puedes ponerte manos a la obra que nada te lo impide, o si? :)

Saludos!
#588
No es un troyano, y no necesitas un dispositivo extraible para valerte de esta vulnerabilidad. Basta con que en el ordenador victima se visualice el archivo modificado.

Las medidas básicas son las ya mencionadas, no obstante lo ideal es lo posteado en el blog de Didier.

Saludos
#589
Programación C/C++ / Re: Cortar numeros
20 Julio 2010, 11:18 AM
Definitivamente, leer el contenido en una cadena y luego procesarlo previa validación es la forma mas eficiente, estable, y segura de hacerlo.

Saludos
#590
Programación C/C++ / Re: duda freopen
20 Julio 2010, 11:05 AM
Bueno, volviendo al tema principal!  :D

Citarbueno, pues según lo que leí el freopen sirve para abrir un archivo y asignarlo para el flujo de datos de entrada o de salida, por ejemplo, yo lo estoy usando para llenar unas matrices en un programa que intenta resolver algun sudoku, y mi problema es que no se como cerrar el archivo, y como lo asigno para que de ahi vengan los datos de entrada, pues ya no puedo aplicar algo para que el usuario salga del programa sin matarlo.
y esa es mi duda, como cerrar un archivo o volver a que los datos de entrada entren por el teclado y no por el archivo.

Lo primero es saber que no hay una forma estandar de hacer lo que pides, tal vez algo rebuscado se pueda lograr, pero no exactamente lo que pides. Los aspectos subyacentes especificos de cada sistema hacen que sea imposible que el estandar pueda abarcarlos todos.

Dicho eso, la mejor opción dependerá mayormente del sistema en el que estés trabajando. Así que basicamente podes abstraer en una librería los algoritmos que necesites dependiendo de los sistemas en los cuales quieres que el programa funcione, o bien utilizar alguna librería multi-plataforma ya desarrollada y testeada (como Boost, por ejemplo).


Algo como esto:

Código (cpp) [Seleccionar]
freopen("CON","r",stdin);

probablemente te funcione siempre y cuando estés en un sistema Windows, y obviamente, que los streams estén asociados a la consola. Eso si, teniendo en claro que seria la peor forma de hacerlo, por la falta de portabilidad y porque este método puede ser propenso a errores en el caso que las redirecciones tiendan a aumentar de complejidad. 

También cabe aclarar que realmente no veo que sea necesario redirigir los streams en la idea que plantea el algoritmo. Seria bastante mas eficiente y flexible elaborar un modulo que se encargue de la lectura y el procesado de un formato de archivo, y en todo caso en cambios futuros solo necesitarías cambiar ese modulo

Para no extenderme mucho mas, lo primero seria que aclares en que sistema necesitas que funcione para poder guiarte adecuadamente. Si la respuesta es elaborar un algoritmo multi-plataforma, probablemente encuentres algún código hecho con Boost si buscas sobre redirecciones de streams en Google.

Saludos!