¿Cuáles son los trucos interesantes e interesantes de Scanf?

  1. scanf tiene un tipo de retorno Devuelve un int que indica el número de campos (variables) explorados con éxito.
    Tomemos un ejemplo:

#include
vacío principal(){
int i, a, b;
i = scanf (“% d% d”, & a, & b);
printf (“% d”, i);
}

Para la entrada “256 89” la salida será 2 . Para la entrada “12abcd”, la salida será 1 porque scanf exploró el valor 12 para la variable a, pero no lo hizo para la variable b .

2. scanf trunca todos los caracteres ingresados ​​inválidos hasta que encuentra uno válido para escanear un campo.

Ejemplo:

#include
vacío principal(){
int a
scanf (“% d”, & a);
printf (“% d”, a);
}

Para la entrada “asdfasd2500”, la salida será 2500 porque todos los caracteres anteriores a 2500 se han truncado porque la variable a aún no se ha escaneado.

3. Si desea la entrada en el formato de una cadena precedida por un entero (ejemplo, “12hello”) pero no desea almacenar el entero, puede usar el carácter de supresión de entrada “ * como sigue:

#include
vacío principal(){
char str [100];
scanf (“% * d% s”, & str); // AVISO THE% * d que ignora ese específico
//campo
}

4. Al escanear una cadena, scanf deja de escanear cuando encuentra caracteres de espacios en blanco que son espacios, caracteres de nueva línea, caracteres nulos, EOF, EOL, etc.

5. Para una cuerda str

scanf (“% s”, & str) y scanf (“% s”, str); No hace diferencia.