Código Para Leer Carácter Con Eco

Páginas: 5 (1210 palabras) Publicado: 6 de mayo de 2016
UNIDAD 4
ING. En Sistemas De Computo
Alfredo Anieves Leon
José Antonio
Luis Ángel

CÓDIGO PARA LEER CARÁCTER CON
ECO
MOV AH, 01H ; PETICIÓN DE LEER CARÁCTER
INT 21H ; LLAMA AL DOS
LA FUNCIÓN 01H INDICA LA OPERACIÓN PARA
LEER UN CARÁCTER DESDE EL TECLADO,
CARÁCTER CON ECO QUIERE DECIR: QUE
CUANDO PULSAS UN CARÁCTER SE IMPRIME
EN LA PANTALLA ENSEGUIDA.

CÓDIGO PARA LEER CARÁCTER SIN ECO

mov ah,07h; petición de leer carácter
int 21h; llama al DOS
la función 07h o también 08h ambas indica la operación
para leer un carácter desde el teclado, carácter sin eco
quiere decir: que cuando pulsas un carácter no es
impreso el carácter pulsado hasta que se manda
imprimir con otra función

Escribiendo el carácter “tilde” en la consola
•No es inusual que en Linux tengamos que escribir el carácter“~” (por ejemplo, el
servidor Web Apache asocia un path virtual para que cada usuario del sistema
pueda tener su propia página web de la forma http://servidor/~usuario).
•Dicho carácter tiene el código ASCII 126 y en un entorno UNIX/Linux en modo
consola podemos escribir dicho carácter utilizando la combinación de teclas:
Alt+126
•El problema aparece cuando utilizamos los últimos entornos gráficos, queno nos
permites obtener dicho carácter utilizando la clásica combinación de teclas. En estos
casos, podemos utilizar la alternativa:
Alt Gr+4
•NOTA: Del mismo modo podemos tener:
•~ Alt Gr+4
•½ Alt Gr+5
•{ Alt Gr+7
•[ Alt Gr+8
•] Alt Gr+9
•} Alt Gr+0

VERIFICACIÓN DEL TECLADO
• Lo que se hace es leer el ingreso de teclado sobre una cadena, la analizas y si tiene la estructura de un entero lopuedes convertir a entero con la función atoi. Si tiene la
estructura de un decimal lo puedes convertir a float usando la función atof.
• La siguiente función permite saber si una cadena es entero:
• Código:
• int es_entero(char *cadena)
•{
• int i, valor;

• for(i=0; i < strlen(cadena); i++)
• {

valor = cadena[ i ] - '0';




if(valor < 0 || valor > 9)
{
if(i==0 && valor==-3) continue;


return0;

}
• }
• return 1;
•}

LECTURA DE UNA CADENA
La primera función de lectura de datos que se enseña es scanf. Se puede usar para leer cadenas, salvo por un detalle conocido por todos los
programadores en C: no acepta cadenas con espacios. La recomendación que la mayoría hace, es que se utilice gets, pero se trata de una función
insegura. Muchos la consideran el defecto más grande del lenguajeC, al grado de que ya ha sido declarada obsoleta. El problema de esta función
es que lee todo lo que el usuario introduzca y lo almacena en la cadena, sin verificar si hay espacio suficiente. Es decir, si tenemos esto:
char nombre[30];
printf("Escribe tu nombre: ");
gets(nombre);
y el usuario introduce un nombre de 30 o más caracteres, gets almacena todo en la variable nombre. Como sólo le caben30 caracteres (29 más el
caracter nulo o de fin de cadena '\0'), los restantes sobrescribirán lo que sea que esté en las posiciones de memoria más allá del byte 30 de la
variable nombre. Es lo que se conoce como un desbordamiento de buffer. A partir de aquí, pueden ocurrir varias cosas, desde la menos grave, esto
es, que el programa termine su ejecución de forma inesperada, hasta tener bugs muydifíciles de encontrar (por ejemplo, si se sobrescribe una
variable) además de que algún malware podría aprovechar esta vulnerabilidad para poner en riesgo la seguridad del sistema operativo. Es por lo
tanto una función que se debe evitar.
Aquí cabe decir que scanf en su forma típica tiene el mismo problema al usarlo con cadenas; si el usuario introduce un nombre que no tiene
espacios, y es mayor a lacapacidad de nuestra variable, habrá desbordamiento.
¿Cuál es la solución entonces? En realidad hay varias. Una forma de hacerlo es usando scanf con una serie de modificadores que sí permiten leer
cadenas con espacios, incluso de forma segura, pero es algo complicada y propensa a errores por todo lo que hay que teclear. La función que casi
siempre se recomienda es fgets, que es una buena...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Para Leer
  • Para Leer
  • ¿Para qué leer?
  • Algo para leer
  • Para Leer
  • Algo Para Leer
  • para leer
  • Para leer

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS