Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
La funcin scanf. Mediante la funcin scanf podemos introducir cualquier combinacin de valores numricos, caracteres sueltos y cadenas de caracteres a travs del teclado. En definitiva, scanf lee datos formateados de la entrada estndar. Cuando hablamos de datos formateados, nos referimos a que los datos se pueden presentar en distintos formatos. La funcin devolver el nmero de datos que se han introducido correctamente. En general, una referencia a la funcin scanf se escribe:
En donde cadena de control hace referencia a una cadena de caracteres que contiene informacin sobre el formato de los datos (debe haber tantos cdigos de formato como argumentos), y la lista de argumentos son argumentos que representan los datos. En la cadena de control se incluyen grupos individuales de caracteres cada uno de los cuales deben comenzar por %. Normalmente, un grupo de caracteres estar formado por el signo de porcentaje seguido de un carcter de conversin que indica el tipo del dato correspondiente. Dentro de la cadena de control se pueden encontrar varios caracteres seguidos o separados por espacios en blanco, tabuladores o caracteres de nueva lnea (es muy frecuente el uso de caracteres en blanco para separar grupos de caracteres). El uso de caracteres de espaciado hace que scanf lea, pero no guarde, cualquier nmero de espacios en blanco hasta el primer carcter no blanco. Veamos en una tabla los caracteres de conversin ms frecuentes: (Recordar que delante de estos caracteres va siempre %)
Significado
Lee un entero decimal, octal o hexadecimal Lee un nmero en punto flotante Lee un nmero en punto flotante Usa %e o %f, el ms corto en long. Lee un entero octal corto Lee una cadena de caracteres Lee un entero decimal sin signo Lee un entero hexadecimal Lee una cadena de caracteres con caracteres de espaciado Lee un puntero
NOTA: scanf tiene el carcter especial * que situado entre el % y el cdigo, lee los datos del tipo especificado, pero elimina su asignacin. Los argumentos de scanf han de ser punteros que no son otra cosa que direcciones de memoria donde se encuentran los datos. Para obtener la direccin de memoria de una variable, es necesario aplicarle el operador monario & de la forma:
& variable