En el caso de la función printf() , el %n asigna el número de caracteres impresos por printf(). Cuando usamos el especificador %n en scanf(), asignará el número de caracteres leídos por la función scanf() hasta que ocurra.
Puntos clave:
- Es un código de conversión de edición.
- El código de conversión de edición %[^\n] se puede utilizar como una alternativa de gets.
- C admite esta especificación de formato con una función scanf().
- Este código de conversión de edición se puede usar para leer una línea que contiene caracteres como variables e incluso espacios en blanco.
- En general, la función scanf() con especificación de formato como %s y especificación con el ancho de campo en forma de %ws puede strings de solo lectura hasta la parte que no es un espacio en blanco.
- Significa que no se pueden usar para leer un texto que contenga más de una palabra, especialmente con espacios en blanco.
Sintaxis:
scanf("%[^\n]", variable_name);
A continuación se muestra el programa para demostrar el funcionamiento de %n en scanf():
C
// C++ to demonstrate %n in scanf() #include <stdio.h> // Driver Code int main() { int check; int a, b; // Input two variables scanf("%d%d%n", &a, &b, &check); // Print value of a, b, and check printf("%d\n%d\n%d", a, b, check); return 0; }
Aporte:
A continuación se muestra la entrada al código anterior:
Producción:
A continuación se muestra la salida del código anterior:
Explicación:
La función scanf() asigna el 10 y el 20 en a y b respectivamente y 5 en la verificación de variables porque hay 5 caracteres leídos por la función scanf (incluidos los espacios).
Publicación traducida automáticamente
Artículo escrito por ramswarup_kulhary y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA