Funciones de entrada CON formato

La función scanf permite leer el flujo de datos de stdin (entrada estándar), de acuerdo al formato dado por la “plantilla”, es decir por el (%), y almacena los datos en los argumentos correspondientes (variables). Trabaja de manera muy similar a la función printf, es decir, existe una correlación directa entre el tipo de dato que se pretende almacenar y la variable donde se almacenará. La plantilla de formato consiste de caracteres de control, caracteres de espacio en blanco y de no espacio en blanco.

Los caracteres de control para las funciones de entrada son precedidos por un signo %, de manera similar a la empleada en la función printf. Los caracteres de control son como sigue:

scanf lee la entrada de datos, y concuerda los caracteres con el formato. Cuando un carácter de control es leído, este pone el valor en la siguiente variable. Los espacios en blanco (tabulador, espacios, etc.) son omitidos. Cualquier carácter de no espacio en blanco puede ser concordado con la entrada. Si un numero es colocado entre el símbolo % y el carácter de control, entonces únicamente esa cantidad de caracteres será convertido a la variable indicada. Si scanf encuentra un conjunto de caracteres, denotado por el carácter de control %[ ], entonces cualquier carácter encontrado entre los paréntesis cuadrados será leído por la variable.

Debido a que C fue concebido como un lenguaje muy cercano al manejo de la memoria de la computadora, la captura de datos debe ser enviada directamente a la dirección de la variable en memoria, por lo que es necesario anteponer el símbolo & (amperson) a todas las variables involucradas en la captura. Mas adelante veremos que éste símbolo nos permite obtener la dirección de la variable en memoria, elemento indispensable en el manejo de punteros.

A continuación se presenta un ejemplo donde se realiza un proceso de captura de datos, se considera un dato tipo char, int y float. Observe que la plantilla corresponde a cada uno de los datos que se pretende capturar, además cada una de las variables que se pretenden capturar tienen de manera antepuesta el símbolo &.

Recuerda que es posible capturar múltiples variables en la misma instrucción scanf, aunque se recomienda utilizar una instrucción scanf por cada variable, ya que esto reduce en ocasiones la posible confusión al momento de la captura ya que se puede solicitar el dato preciso, reduciendo la posibilidad de un ingreso erróneo de datos.

De ésta manera es posible reescribir el programa anterior, de modo que luzca mas ordenado: