Introducción:
Imprimirf() y escanear() son funciones de biblioteca incorporadas en lenguaje C que realizan entrada formateada y salida formateada funciones. Estas funciones se definen y declaran en archivo de encabezado stdio.h . El 'F' en imprimirf y escanear representa 'formateado' . Entonces, ambas funciones imprimirf() y escaneo() use códigos dentro de una cadena de formato para especificar cómo se deben formatear los valores de salida o entrada. Necesitamos importar el archivo de encabezado para usarlo. imprimirf() y escaneo() :
#include
En este artículo, discutiremos la diferencia entre printf() y scanf(), pero antes de discutir las diferencias, debemos conocer printf() y scanf() con su sintaxis y ejemplos.
Imprimirf():
Él huellas dactilares cualquier cosa entre doble comillas con especificadores de formato %c, %d,%f, etc., para mostrar un valor de una variable o una constante y también puede tener caracteres de secuencia de escape como , para nueva línea, y pestaña horizontal , respectivamente.
cadena dividida c ++
Sintaxis:
printf('(string) %format_specifier (string)',variable);
Escanear():
Nos permite leer uno o varios valores ingresados por el usuario a través del teclado de la consola. Podemos colocar tantos especificadores de formato tantas entradas que queramos con o sin formato.
Sintaxis:
scanf(%format_specifier, &pointer_to_variable);
Cadena del especificador de formato:
En el primer parámetro de imprimirf y escanear , pasamos cadena de formato o cadena del especificador de formato , y especificamos que tipo de valor va a ingresar el usuario.
Tipo de datos | Conversión | cadena de formato |
---|---|---|
Entero | entero corto | %d o %i |
corto sin firmar | % en | |
firmado hace mucho tiempo | % de edad | |
mucho tiempo sin firmar | % lu | |
hexadecimal sin signo | % X | |
octal sin firmar | %O | |
Real | flotar | % f o % g |
doble | %lf | |
personaje firmado | %C | |
carácter sin firmar | %C | |
cadena | %s |
Por ejemplo, si un usuario ingresa 20 como entrada, como 20 es un valor entero decimal , especificamos todos los valores enteros decimales en C usando el %d especificador de formato . Similarmente, valores flotantes se especifican usando %F .
cadena booleana java
Código básico para Printf() y Scanf():
Ejemplo 1:
#include int main() { int a, b; int sum = 0, sub = 0, mul = 0; printf('Please enter the two values:'); /* Read input */ scanf('%d%d', &a, &b); sum = a+b; sub = a-b; mul = a*b; /* Print output */ printf('The sum = %d sub = %d mul = %d', sum, sub, mul); return 0; }
Producción:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Explicación:
En el programa anterior, estamos usando el escaneo() leer la entrada desde la consola y almacenarla en variables a y b. Después de eso, realizamos operaciones aritméticas como suma , sustracción , y multiplicación y luego almacenar los resultados en el tres nuevas variables (Suma, Sub, Mul). Finalmente, utilizando el función printf() , estamos imprimiendo los resultados.
Ejemplo 2:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
En el programa anterior, escaneo() lee dos entradas del programa a pesar de que estamos pasando una variable porque especificamos dos especificadores de formato . Recuerda siempre, en scanf()/imprimir() todos especificadores de formato que aprobemos debería ser el mismo; de lo contrario, podríamos obtener algunos errores de ejecución inesperados.
Ejemplo 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Producción:
5 Execution finished...
Explicación:
En el programa anterior, escaneo() lee solo una entrada del usuario porque especificamos solo un especificador de formato . Entonces, de este ejemplo, concluimos que ninguna de las entradas se tomará dependiendo del número de especificadores de formato .
Ejemplo 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Producción:
6 Segmentation fault
Explicación:
En el programa anterior, estamos pasando el valor de una variable a escaneo() en lugar de la dirección variable. Esto conducirá a un Error de tiempo de ejecución . En Linux, obtendremos un error de falla de segmentación.
js cadena multilínea
Ejemplo 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Producción:
the value of a = 10, the value of b = 20
Explicación:
En el programa anterior, cuando imprimirf escanea la cadena de formato, reemplazará el especificadores de formato (%d) con los valores reales que pasamos a imprimirf() . es decir, el primer especificador de formato será reemplazado por el primer valor que pasemos imprimirf(), etcétera.
Diferencias básicas entre Printf() y Scanf()
Algunas diferencias entre printf y scanf son: -