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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  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 164,574 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 pm »

Puedes comentar siempre que quieras en las chinchetas :D


« Última modificación: 19 Noviembre 2010, 18:01 pm 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 am »

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.894



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

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

flacc


Desconectado Desconectado

Mensajes: 854


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

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 pm »

 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 pm »

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 am »

[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 am 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 pm »

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 pm 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.069


/^$/


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

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 pm »

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 2,133 Último mensaje 13 Marzo 2012, 23:48 pm
por krowa
Problema con la creación de tablas SQL nivel básico.
Desarrollo Web
nikko88 2 2,588 Último mensaje 25 Junio 2012, 17:48 pm
por nikko88
[Nivel 1/10] CrackMe básico C #4 « 1 2 »
Ingeniería Inversa
cibergolen 12 9,761 Último mensaje 30 Diciembre 2012, 22:42 pm
por cibergolen
[C] problemas de ejecucion con un for (nivel basico, 1ro de carrera) [?] « 1 2 3 »
Programación C/C++
SoyelRobert 20 12,880 Último mensaje 16 Diciembre 2013, 21:24 pm
por SoyelRobert
[Tutorial Nivel básico] Haciendo cantar a nuestro Crackme
Ingeniería Inversa
fary 5 4,366 Último mensaje 6 Febrero 2016, 00:03 am
por fary
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines