%n en scanf() en C con Ejemplo

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *