Si no sabes sobre el %i y %d especificadores de formato, siga las instrucciones de este artículo.
%i Especificador de formato
En el lenguaje de programación C, el %i se usa para imprimir un entero con signo cuando se usa con la función printf(). Los enteros con signo son los que pueden ser positivos o negativos. En la programación C, cuando se usa %i, el valor del argumento que se transmite debe ser una expresión o un tipo entero que se evalúa automáticamente en un tipo de datos entero. También puede utilizar el %i especificador para leer un valor de carácter que se encuentra dentro del rango de un entero con signo.
Especificador de formato %d
El %d El especificador de formato, por otro lado, se usa para imprimir el entero sin signo en el lenguaje de programación C. Aquí los enteros sin signo son enteros positivos. En lenguaje C cuando usa %d entonces el valor del tipo de argumentos En t .
diferencias
Ambos %i y %d Los especificadores de formato se utilizan con frecuencia en el lenguaje de programación C para imprimir números enteros. Pueden parecer similares en términos de uso y comportarse de la misma manera cuando se usa la función printf().
Sigamos con un código de muestra donde se usan ambos especificadores de formato.
#incluir
En t principal ( ) {
En t dígito ;
imprimir ( 'Por favor ingrese cualquier dígito: ' ) ;
escanear ( '%i' , & dígito ) ;
imprimir ( ' \norte El dígito es: %i \norte ' , dígito ) ;
imprimir ( 'El dígito es: %d \norte ' , dígito ) ;
devolver 0 ;
}
En este código, primero inicializamos una variable y tomamos el valor del usuario usando scanf(). Luego mostramos la salida usando %d y %i .
Producción:
Ambos proporcionan una salida similar cuando se utilizan con el imprimirf() función. No importa si ingresas el valor positivo o negativo, el resultado siempre será el mismo.
Sin embargo, si nos fijamos en la función scanf, podemos diferenciarlos correctamente. En el código anterior, si ingresamos un valor decimal como “012” . si usamos '%d' en lugar de %i, obtendrá la salida 12. La razón es que %d ignora el valor 0 cero de la entrada del usuario.
#incluirEn t principal ( ) {
En t dígito ;
imprimir ( 'Por favor ingrese cualquier dígito: ' ) ;
escanear ( '%d' , & dígito ) ;
imprimir ( ' \norte El dígito es: %i \norte ' , dígito ) ;
imprimir ( 'El dígito es: %d \norte ' , dígito ) ;
devolver 0 ;
}
Producción
Si se ingresa el mismo valor usando %i como en la función scanf(), la salida será 10 en este caso. La razón es %i imprime el valor decimal de 012 (representación octal).
#incluirEn t principal ( ) {
En t dígito ;
imprimir ( 'Por favor ingrese cualquier dígito: ' ) ;
escanear ( '%i' , & dígito ) ;
imprimir ( ' \norte El dígito es: %i \norte ' , dígito ) ; //salida de zapatos
imprimir ( 'El dígito es: %d \norte ' , dígito ) ; //salida de zapatos
devolver 0 ;
}
Conclusión
El especificador de formato es un patrón que inicialmente comienza con el % sign y generalmente nos dice qué tipo de datos se colocan en la entrada y qué datos se mostrarán. %d y %i son dos especificadores ampliamente utilizados en la programación en C. Son similares cuando se usan con la función printf() pero generan resultados diferentes cuando se usan con la función scanf().