elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  |Lo que no hay que hacer en C/C++. Nivel basico|
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] 5 6 7 Ir Abajo Respuesta Imprimir
Autor Tema: |Lo que no hay que hacer en C/C++. Nivel basico|  (Leído 132,307 veces)
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #30 en: 14 Octubre 2010, 19:45 »

Puedes comentar siempre que quieras en las chinchetas :D


« Última modificación: 19 Noviembre 2010, 18:01 por Horricreu » En línea

rbarragan

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #31 en: 31 Octubre 2010, 09:15 »

Muy bien explicado, de echo en mi Universidad enseñan varios "malos habitos" para programar. Aunque soy de nivel básico. Pero pues ya con eso nos damos una idea.
Saludos.


En línea

Uxio
Hacking Wireless
Colaborador
***
Desconectado Desconectado

Mensajes: 3.892



Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #32 en: 6 Noviembre 2010, 13:40 »

En mi facultad había tenido muchos problemas con srtcat y strcopy cuando estaba aprendiendo, y no sabía por qué fallaba...

Para mirar todo este tipo de fallos y sobreescrituras en memoria usaba Valgrind, que te informa de todas las cafradas que haces y en qué líneas (si has compilado el programa con la información de depuración)
En línea

Fede CC


Desconectado Desconectado

Mensajes: 846

Desarrollador


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #33 en: 19 Noviembre 2010, 01:00 »

Pero si un profesor de universidad enseña eso dando por saldado como bien hecho quiere decir que ese profe no debe enseñar hasta actualizarse, amenos que lo haga con tu mismo proposito, el de decir que no se debe hacer... es interesante, caundo me pase la primera vez por este foro era mas ignorante en informatica....saludoss
En línea

veco

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #34 en: 19 Marzo 2011, 22:02 »

 muy bueno la voy atilizar mucho
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #35 en: 26 Marzo 2011, 23:50 »

Bueno, ahora que yo también estoy en la Universidad, y que tengo que programar aplicaciones por consola me entró la duda sobre fflush(stdin). Tengo claro que no es correcto usarla, pero no tengo clara la alternativa. Algunos mencionais que en vez de utilizar scanf(), que deja basura en el buffer, se puede utilizar fgets() "que no lo hace", pero sí lo hace, si metes más caracteres que los pasados en el segundo parámetro de fgets siguen quedando cosas en el buffer.

He leído cosas como hacer esto:
Código
  1. int Opt=0;
  2. scanf("%d",&Opt);
  3. while(getchar()!='\n');
  4.  

¿Puede presentarse algún problema la hacerlo así? ¿Otras opciones?

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #36 en: 27 Marzo 2011, 10:51 »

[Zero]
Si sabes que tu lectura va a ser siempre un entero y un salto de linea, creo que esto debería dar la talla.
Código
  1. scanf("%d\n"&entero);

En principio debería funcionar, si no me equivoco en algo.

Para lectura de dos enteros, (entero espacio entero salto de linea)

Código
  1. scanf("%d %d\n"&entero)

Esto es debido a que scanf se utiliza para "scan with format".

Como comentario curioso, en una práctica teníamos que leer algo de este estilo de un fichero:

r tabulador X tabulador (45,64) espacio (78,95) salto de linea

infernal, no?
\t es el tabulador
Código
  1. fscanf(fichero, "%c\t%c\t(%d,%d) (%d,%d)\n",&char1,&char2,&int1,&int2,&int3,&int4)

y problema solucionado xD
« Última modificación: 27 Marzo 2011, 10:57 por Akai » En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #37 en: 27 Marzo 2011, 16:39 »

Código
  1. scanf("%d\n"&entero);

Vamos a diferenciar entre lo que debería ser y lo que puede ser xD. Yo quiero leer un entero, claro está, pero el usuario puede introducir cualquier cosa, si le digo que ponga un entero, y pone "123 abc" dejaría basura en el buffer, y es lo que quiero evitar, no dejar basura en el buffer aunque el usuario no haga caso.

Saludos

Edito: Vale, no ví el '\n' xD.

Edito2: Bueno, da igual, si el usuario introduce una cadena, la cadena quedaría en el buffer.
« Última modificación: 27 Marzo 2011, 16:41 por [Zero] » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.070


/^$/


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #38 en: 27 Marzo 2011, 20:30 »

fgets + sscanf
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: |Lo que no hay que hacer en C/C++. Nivel basico|
« Respuesta #39 en: 27 Marzo 2011, 20:37 »

fgets + sscanf

Pero es lo que dije antes, fgets deja basura en el buffer si el usuario escribe un número de caracteres mayor que el del segundo parámetro. Le puedo poner 1000 en el segundo parámetro, pero si el usuario mete 1001 caracteres fgets deja 1 en el buffer  :P.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Páginas: 1 2 3 [4] 5 6 7 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayudaa problema nivel basico
Programación C/C++
krowa 0 818 Último mensaje 13 Marzo 2012, 23:48
por krowa
[Nivel 1/10] CrackMe básico C #4 « 1 2 »
Ingeniería Inversa
cibergolen 12 6,056 Último mensaje 30 Diciembre 2012, 22:42
por cibergolen
[C] problemas de ejecucion con un for (nivel basico, 1ro de carrera) [?] « 1 2 3 »
Programación C/C++
SoyelRobert 20 7,635 Último mensaje 16 Diciembre 2013, 21:24
por SoyelRobert
[Reto] CrackMe I (Nivel: Básico / SuperFácil) « 1 2 »
Ingeniería Inversa
jaxoR 13 3,466 Último mensaje 28 Abril 2015, 20:21
por Arkangel_0x7C5
[Tutorial Nivel básico] Haciendo cantar a nuestro Crackme
Ingeniería Inversa
fary 5 2,075 Último mensaje 6 Febrero 2016, 00:03
por fary
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines