Entrada y salida formateada usando printf () y scanf ()

printf ()

Esta función se utiliza para imprimir texto, así como el valor de las variables en el dispositivo de salida estándar (monitor), printf es función de biblioteca muy básico en lenguaje C que se declara en el archivo de cabecera stdio.h.

Sintaxis:

   printf(“message”);

   printf(“message + format-specifier”,variable-list);

En primer printf () printf estilo del texto simple en el monitor, while segundo printf () imprime el mensaje con los valores de la lista de variables.

#include <stdio.h>
int main()
{
printf("Message-1");
printf("Message-2");
printf("Message-3");
return 0;
}

salida

Message-1Message-2Message-3

Cómo imprimir el valor de las variables?

Para imprimir los valores de las variables, es necesario entender sobre especificadores de formato son los caracteres especiales% seguido de signo, que se utilizan para imprimir los valores de la variable s de la lista de variables.

Formato especificadores

Aquí están la lista de algunos de los especificadores de formato, utilizarlos en printf () y scanf () a formato e imprimir los valores de las variables:

    Character           (char)          %c
Integer (int) %d
Insigned integer (unsigned int) %ld
Long (long) %ld
Unsigned long (unsigned long) %lu
Float (float) %f
Double (double) %lf
Octal Value (octal value) %o
Hexadecimal Value (hex value) %x
String (char[]) %s
**NOTE** Use ‘u’ for unsigned type modifier, ‘l’ for long.

Secuencias de escape

Para imprimir especial línea extra / espacios etc, utilizamos secuencias de escape, estos personajes son seguidos por ” (barra).

    			
” “
’ ‘
? ?
a Alert
b Back space
n New Line
t Horizontal tab
v Vertical tab
r Carriage return

Considere los siguientes ejemplos:

#include <stdio.h>
int main()
{
int num=100;
float val=1.23f;
char sex='M';
//print values using different printf
printf("Output1:");
printf("%d",num);
printf("%f",val);
printf("%c",sex);
//print values using single printf
printf("nOutput2:"); // n: for new line in c
printf("%d,%f,%c",num,val,sex);
return 0;
}

salida

Output1:1001.230000M
Output2:100,1.230000,M

enteros de relleno con 0 del / Espacios

Otro concepto importante y útil es valores de relleno con 0 de o espacios.

relleno con el espacio: Uso % [n] d , aquí [n] es el número de caracteres, el uso % – [n] d para el relleno de espacio de la derecha.

#include <stdio.h>
int main()
{
int a=10;
int b=1234;
int c=11111;
printf("nLeft padded with spaces:");
printf("na=%5d nb=%5d nc=%5d",a,b,c);
printf("nRight padded with spaces:");
printf("na=%-5d,b=%-5d,c=%-5d",a,b,c);
return 0;
}

salida

Left padded with spaces:
a= 10
b= 1234
c=11111
Right padded with spaces:
a=10 ,b=1234 ,c=11111

relleno con ceros: Uso % 0 [n] d , aquí [n] es el número de caracteres.

#include <stdio.h>
int main()
{
int a=10;
int b=1234;
int c=11111;
printf("nLeft padded with 0's:");
printf("na=%05d nb=%05d nc=%05d",a,b,c);
return 0;
}

salida

Left padded with 0's:
a=00010
b=01234
c=11111

valores de relleno float con 0 de

Consideremos los siguientes ejemplos:

#include <stdio.h>
int main()
{
float a=1.23f;
float b=1.234f;
float c=1.0f;
printf("na=%05f nb=%08.3f nc=%.2f",a,b,c);
return 0;
}

salida

a=1.230000
b=0001.234
c=1.00

% 05F – Desde grabados valor default float 6 dígitos después precisión y aquí es 05F%, por lo que no se realizarán cambios.

% 08.3f – “.3f” impresiones de 3 dígitos después de la precisión y “08” significa el acolchado con cero (8 dígitos – incluyendo dígitos antes y después de la precisión).

% .2f – 2 dígitos se imprimen después de precisión.

cadena de formato y el relleno con espacios

#include <stdio.h>
int main()
{
char text1[]="includehelp";
char text2[]="includehelp.com";
char text3[]="http://www.includehelp.com";
printf("nWithout padding:");
printf("ntext1:%s ntext2:%s ntext3:%s n",text1,text2,text3);
printf("nWith left space padding:");
printf("ntext1:%30s ntext2:%30s ntext3:%30s n",text1,text2,text3);
printf("nWith right space padding:");
printf("ntext1:%-30s ntext2:%-30s ntext3:%-30s n",text1,text2,text3);
return 0;
}

salida

Without padding:
text1:includehelp
text2:includehelp.com
text3:http://www.includehelp.com
With left space padding:
text1: includehelp
text2: includehelp.com
text3: http://www.includehelp.com
With right space padding:
text1:includehelp
text2:includehelp.com
text3:http://www.includehelp.com

Imprimir valor en formato decimal, octal y hexadecimal

Se puede imprimir número entero de valor en los siguientes formatos utilizando siguientes especificadores de formato:

    %d		-	Decimal
%o - Octal (small ‘o’)
%x - Hexadecimal (alphabets will print in small case)
%X - Hexadecimal (alphabets will print in upper case)

Consideremos el siguiente ejemplo

#include <stdio.h>
int main()
{
int val=32106;
printf("nDecimal : %d",val);
printf("nOctal : %o",val);
printf("nHex : %x",val);
printf("nHex : %X",val);
return 0;
}

salida

Decimal     : 32106
Octal : 76552
Hex : 7d6a
Hex : 7D6A

scanf ()

Esta función se utiliza para obtener el valor (entrada) desde el teclado. Pasamos especificadores de formato, en el que el formato que queremos tomar la entrada.

Sintaxis:

   scanf(“format-specifier”, &var-name);

   scanf(“fromat-specifier-list”, &var-name-list);

primer tipo de scanf () toma el valor único para la variable y segundo tipo de scanf () se llevará a los múltiples valores para la lista de variables.

Considere los siguientes ejemplos:

#include <stdio.h>
int main()
{
int a;
float b;
char c;
printf("Enter an integer number (value of a)?:");
scanf("%d",&a);
printf("Enter a float number (value of b)?:");
scanf("%f",&b);
printf("Enter a character (value of c)?:");
fflush(stdin); // to flush (clear) input buffer
scanf("%c",&c);
printf("na=%d,b=%f,c=%c",a,b,c);
return 0;
}

salida

Enter an integer number (value of a)?:1234
Enter a float number (value of b)?:1.2345
Enter a character (value of c)?:G
a=1234,b=1.234500,c=G

Considere los siguientes ejemplos para leer el valor múltiple en la declaración scanf sola:

#include <stdio.h>
int main()
{
int a;
float b;
char c;
printf("nEnter value of a,b,c (an integer, a float, a character):");
scanf("%d%f%c",&a,&b,&c);
printf("na=%d,b=%f,c=%c",a,b,c);
return 0;
}

salida

Enter value of a,b,c (an integer, a float, a character):1234 1.2345 G
a=1234,b=1.234500,c=

Aquí, G no se almacenará en la variable c, porque no estamos Flushing buffer de entrada aquí. Así que, o usted tendrá que tomar la entrada de la primera c o tendrá que leer el valor de c por separado.


Deja un comentario

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