#include <stdio.h> int scanf(const char *format, ...);
Esta función lee texto formateado desde stdin y lo almacena en las variables a las que apuntan sus argumentos.
El primer parámetro contiene caracteres que se deben de corresponder exactamente con caracteres de entrada así como especificadores de lectura, que comienzan con %.
Especificador | Descripción |
---|---|
c | Lee el siguiente carácter de la entrada |
d | Lee un entero |
i | Lee un entero |
u | Lee un entero sin signo |
o | Lee un entero sin signo en octal |
x | Lee un entero sin signo en hexadecimal |
ld | Lee un entero largo |
lu | Lee un entero largo sin signo |
lo | Lee un entero largo sin signo en octal |
lx | Lee un entero largo sin signo en hexadecimal |
lld | Lee un entero más largo (long long) |
llu | Lee un entero más largo sin signo |
llo | Lee un entero más largo sin signo en octal |
llx | Lee un entero más largo sin signo en hexadecimal |
e | Lee un número en coma flotante (float y double si se precede de l) |
f | Lee un número en coma flotante (float y double si se precede de l) |
g | Lee un número en coma flotante (float y double si se precede de l) |
Le | Lee un número en coma flotante (long double) |
Lf | Lee un número en coma flotante (long double) |
Lg | Lee un número en coma flotante (long double) |
s | Lee la entrada hasta alcanzar un espacio en blanco |
p | Lee un puntero |
El número de valores que se corresponden y asignan exitosamente. Devuelve EOF si se alcanza el final de la entrada antes de que el primer valor sea asignado.
ANSI, POSIX
#include <stdio.h> int main(){ char c1, c2, c3, r[21]; int k; float x; printf("\nIntroduzca tres caracteres separados por un espacio"); scanf("%c %c %c", &c1, &c2, &c3); printf("\nIntroduzca una ristra de 20 caracteres como máximo"); /* Sólo lee hasta el primer espacio */ scanf("%s",r); printf("\nIntroduzca un valor entero y un valor real"); scanf("%d%f", &k, &x); printf("\nLos datos introducidos son:\n"); printf("%c %c %c %s %d %f\n",c1,c2,c3,r,k,x); return 0; }