Salida de datos (función printf)
Lo primero que aprenderemos es como mandar mensajes a la consola o terminal, y es utilizando la función printf();
. Como se muestra en el siguiente ejemplo:
// main.c
#include <stdio.h> // se debe importar la librería estándar de entradas y salidas para poder usar printf, de lo contrario marcara un error al compilar
// función main
int main(void){
printf("Hola Mundo");
return 0;
}
La función printf
nos sirve para mandar información a la consola, tiene manera especiales para escribir los tipos de datos y ademas tiene caracteres especiales que se detallan a continuación.
Secuencias de escape
Las secuencias de escape son caracteres especiales para printf
, que no se pueden colocar de manera cotidiana porque para C significa otra cosa, por lo tanto, dicho carácter se debe escapar; es decir, agregar un back slash al principio \
.
Símbolo | Significado |
---|---|
\n |
Linea nueva - Enter |
\t |
un tabulador |
\r |
Regresa el cursor al inicio - Retorno de carro |
\\ |
Back slash |
\" |
Dobles Comillas |
\' |
Comillas simple |
Ejemplos con secuencias de escape
Aplicando las secuencias de escape
printf("Hola\nMundo");
Hola
Mundo
printf("Hola\tMundo");
Hola Mundo
printf("\"Hola Mundo\"");
"Hola Mundo"
printf("\'Hola Mundo\'");
'Hola Mundo'
Especificádores de formato
En C
no se puede mandar a imprimir de manera directa una variable, se de usar un especificador de formato adecuado al tipo de variable que se quiere mandar a la salida.
Se debe utilizar el símbolo de %
seguido de la letra que le corresponde al tipo de variable:
Especificador de formato | Tipo de variable | Nombre |
---|---|---|
%i , %d |
int , short |
Número entero |
%f |
float |
Número real |
%c |
char |
Carácter |
%o |
int |
Octal |
%x |
int |
Hexadecimal |
%i |
char |
El valor ASCII del carácter |
%s |
string .char* , char[] |
Cadena de caracteres |
%Lf |
long double |
Flotante doble largo |
%lld |
long long int |
Entero largo |
%u |
unsigned char ,unsigned short , unsigned int |
Enteros sin signo |
%lu |
unsigned long int |
Entero sin signo |
%llu |
unsigned long long int |
Entero sin signo |
%p |
* |
Dirección de puntero |
uint8_t valor = 2;
int edad = 13;
float altura = 1.73;
char arroba = '@';
char* frase = "Hola Mundo";
printf("%i \n", edad);
printf("%f \n", altura);
printf("%c \n", arroba);
printf("%s \n", frase);
printf("%d \n", valor);
13
1.730000
@
Hola Mundo
2
Dando formato
Cuando números float
o double
, por default se agregan ceros al final para acompletar los espacios de un numero, es decir, si declaramos float a = 4.32;
y mandamos a imprimir esta variable el resultado sera 4.320000
.
Pero nosotros no queremos todo esos ceros o simplemente queremos menos decimales, para esto tenemos en los especificadores de formato la forma de indicar que lo acorte:
#include <stdio.h>
int main(void){
float valor = 21.123456;
printf("El %.1f\n", valor);
printf("El %.2f\n", valor);
printf("El %.3f\n", valor);
printf("El %.4f\n", valor);
printf("El %.5f\n", valor);
printf("El %f\n", valor);
return 0;
}
Ejemplos
- Calcular el perímetro y area del cuadrado, con valores en memoria, dando el siguiente formato, ejemplo "El perímetro del rectángulo es: 43.2 u" y "El area del rectángulo es: 23.2 u2"
#include <stdio.h>
int main(void){
float side = 4.31;
printf("CALCULADORA DEL CUADRADO\n");
printf("El valor del lado es %f\n", side);
float perimetro = side * 4;
printf("El perimetro es %f u\n", perimetro);
float area = side * side;
printf("El area es %f u2\n", area);
return 0;
}
Ejercicios
- Imprimir "Hola mundo"
- Imprimir una frase usando secuencias de escape para que entre palabras se haga un salto de línea
- Sumar 2 números e imprimir el resultado
- Calcular el perímetro y area del rectángulo, con valores en memoria, dando el siguiente formato, ejemplo "El perimetro del rectangulo es: 43.2 u" y "El area del rectangulo es: 23.2 u2"