|
|
Las especificaciones de formato van precedidas de un signo % y a continuación alguna de las opciones siguientes:
| %c | Para leer un caracter único |
| %d | Para leer un entero en base diez |
| %e | Para leer una cantidad exponencial de base 10 (punto flotante) |
| %f | Para leer una catidad real de base 10 (punto flotante) |
| %h | Para leer un entero corto |
| %i | Para leer un entero en base 10 |
| %o | Para leer una cantidad en base 8 |
| %s | Para leer una cadena |
| %x | Para leer una catidad hexadecimal |
| PROGRAMA EJEMPLO: |
| /*lectura de
tres valores de variables enteras*/
#include<stdio.h> main(void) { int e,m,c; scanf("%d%d%d",&e,&m,&c); /* en este espacio se colocarian las instrucciones para proceso de la información e impresión de resultados*/ /* recuerde que /*...*/ son comentarios que no se procesan*/ return(0); } |
En el ejemplo anterior debe observarse que no se incluyo caracter alguno entre las especificaciones de campo. Si se incluye algo, eso mismo deberá indicarse junto con los valores a teclear, por ejemplo:
scanf("%d%d%d",&e,&m,&c);
está indicando a C que lea un entero, descarte una coma, lea otro entero, descarte una segunda coma y lea un último entero (en este caso se teclean los datos separados por comas y al final se da un ENTER). Debe tenerse precaución en la lectura para evitar casos de confusión como pudiera ser el siguiente:
scanf("%s",nombre_cadena);
Pues ahí, ademas del valor de la cadena, scanf está esperando a que se indique el espacio en blanco que sigue a la especificación s para concluir la lectura; es decir que de esa forma se indica que se lea y descarte caracteres de espacios, tabulaciones y saltos de linea.
NOTA: No es recomendable indicar las ordenes de lectura sin la presencia de ordenes de escritura que nos indiquen los valores que deberán proporcionarse por teclado (lectura indicada por el scanf();). En ocasiones se requerirá borrar la memoria temporal que usa scanf(); para evitar errores antes de volver a leer. Para ello use la función fflush(stdin);
