Autor
|
Tema: |Lo que no hay que hacer en C/C++. Nivel basico| (Leído 165,471 veces)
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
Puedes comentar siempre que quieras en las chinchetas
|
|
« Última modificación: 19 Noviembre 2010, 18:01 pm por Horricreu »
|
En línea
|
|
|
|
rbarragan
Desconectado
Mensajes: 3
|
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
|
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
|
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
Mensajes: 4
|
muy bueno la voy atilizar mucho
|
|
|
En línea
|
|
|
|
[Zero]
Wiki
Desconectado
Mensajes: 1.082
CALL DWORD PTR DS:[0]
|
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: int Opt=0;
¿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
Mensajes: 823
|
[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.
En principio debería funcionar, si no me equivoco en algo. Para lectura de dos enteros, (entero espacio entero salto de linea)
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 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
Mensajes: 1.082
CALL DWORD PTR DS:[0]
|
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
Mensajes: 3.069
/^$/
|
fgets + sscanf
|
|
|
En línea
|
|
|
|
[Zero]
Wiki
Desconectado
Mensajes: 1.082
CALL DWORD PTR DS:[0]
|
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 . Saludos
|
|
|
En línea
|
“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza. Nietzsche
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayudaa problema nivel basico
Programación C/C++
|
krowa
|
0
|
2,163
|
13 Marzo 2012, 23:48 pm
por krowa
|
|
|
Problema con la creación de tablas SQL nivel básico.
Desarrollo Web
|
nikko88
|
2
|
2,630
|
25 Junio 2012, 17:48 pm
por nikko88
|
|
|
[Nivel 1/10] CrackMe básico C #4
« 1 2 »
Ingeniería Inversa
|
cibergolen
|
12
|
9,842
|
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
|
13,013
|
16 Diciembre 2013, 21:24 pm
por SoyelRobert
|
|
|
[Tutorial Nivel básico] Haciendo cantar a nuestro Crackme
Ingeniería Inversa
|
fary
|
5
|
4,416
|
6 Febrero 2016, 00:03 am
por fary
|
|