Está en la página 1de 5

2/4/2017 printf y scanf en el lenguaje de programación C

printf y scanf en C/C++


printf y scanf son quizás las funciones (comandos) más utilizadas en programas básicos de C. Sirven para imprimir información por pantalla y
pedir datos a usuarios por pantalla, respectivamente. Se incluyen en la biblioteca de funciones stdio.h. Vamos a ver cómo gestionar la
información guardada en forma de variables utilizando estas funciones — printf() y scanf().

printf y scanf: printf()


Para imprimir texto por pantalla, utilizamos la función printf(). Utilizar esta función es más sencillo de lo que podemos llegar a pensar. De
hecho, solo debemos incluir la biblioteca stdio.h en nuestro programa y llamarla de la siguiente manera:

#include <stdio.h> 
int main(){ 
  printf("Hola mundo"); 
  return 0; 
}

En el ejemplo anterior imprimimos un mensaje de texto, pero también podemos imprimir valores de variables utilizando la misma función
printf(). En el artículo anterior hemos visto los tipos de datos más utilizados en el lenguaje de programación C. Bien, para imprimir valores de
variables utilizando la función printf(), podemos empezar viendo el siguiente ejemplo:

#include <stdio.h> 
int main(){ 
  int num1 = 10; 
  printf("Soy el número %d", num1); 
  return 0; 
}

En el ejemplo vemos que la variable num1 vale 10 y usando la función printf() imprimimos un texto junto al valor de la variable. Y si nos
jamos vemos que hemos indicado la posición en la que se imprimirá el valor de variable utilizando %d y le pasamos como parámetro
separado por coma (,) la variable de la cual queremos imprimir el valor.

A continuación vemos un ejemplo en que imprimiremos diferentes textos junto a valores de variables por pantalla utilizando printf()
pasandole las variables como parámetros.

#include <stdio.h> 
int main(){ 
  int num1 = 10; 
  float pi = 3.141592; 
  char caracter = 'a'; 
  char mensaje[] = "Hola"; 
  
  printf("5 + 5 = %d \n", num1); 
  printf("El número pi es aprox: %f \n", pi); 
  printf("Se puede usar la palabra '%s' para saludar \n", mensaje); 
  printf("La primera letra del abecedario es: %c \n", caracter); 
  
  return 0; 
}

El resultado de este programa sería:

5 + 5 = 10  
El número pi es aprox: 3.141592  
Se puede usar la palabra 'Hola' para saludar  
Utilizamos cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.  Aceptar
La primera letra del abecedario es: a  

http://www.elladodelgeek.com/printf­y­scanf­en­c/ 1/5
2/4/2017 printf y scanf en el lenguaje de programación C

 \n se usa para imprimir un salto de línea. De esta forma no se escribe todo el texto en una única línea. También podemos usar 
\t para insertar una tabulación en la posición que queramos del mensaje de texto.

De forma que dependiendo del tipo de variable que queremos imprimir en un mensaje usando la función printf(), debemos usar un formato u
otro y indicamos este formato en la posición pertinente.

Tipo de dato Formato

número entero %d

número real %f

carácter %c

cadena de texto %s

En el ejemplo anterior, hemos visto cómo imprimir el valor de una única variable. Pero como ya hemos visto en artículos anteriores, en una
misma función printf() podemos imprimir más de una variable a la vez. Para ello solo debemos pasarle las variables como parámetros
separados por coma. A continuación vemos un ejemplo.

#include <stdio.h> 
int main(){ 
  int num1 = 10; 
  char mensaje[] = "Hola"; 
  
  printf("%s, soy el número %d. \n", mensaje, num1); 
  
  return 0; 
}

Cuidado, porque las variables deben estar en el mismo orden que la posición en que se encuentra el ‘marcador de formato’. En este caso, la
primera variable debe ser ‘mensaje’ y no ‘num1’ porque primero imprimimos ‘%s’ y luego ‘%d’. De forma que el siguiente código no es válido:

 #include <stdio.h> 
int main(){ 

  int num1 = 10; 
  char mensaje[] = "Hola"; 
  
  printf("%s, soy el número %d. \n", num1, mensaje); 
  
  return 0; 
}

Porque en este caso el compilador intentará poner el valor de la variable ‘num1’ en la posición donde hemos puesto ‘%s’ pero como son de
diferentes tipos de datos (%s es para especi car que allí se imprimirá una cadena de texto y no número entero), pues nos daría error.

printf y scanf: scanf()


La función scanf() se utiliza principalmente para pedir información al usuario. Por ejemplo, si queremos calcular la edad de una persona nos
es imposible si no sabemos su fecha de nacimiento.

¿Cómo podemos conseguir la fecha de nacimiento para usarla dentro del programa?
– Preguntándole personalmente
– Preguntando a una persona cercana
– Mirando en su Facebook
– Cotilleándole la cartera
[..]

Bien, todas las opciones anteriores son válidas, vamos a crear nuestro programa sabiendo con anterioridad la fecha de nacimiento:

#include <stdio.h> 
int main(){ 
  
  int fNacimiento = 1993; 
  int edad = 2014 ‐ fNacimiento; 
  
  printf("Tienes %d años.\n", edad); 
  
  return 0; 
}

En este caso el programa funciona, pero ¿qué pasa si queremos compilarlo y compartirlo con otra persona para calcular su edad basándose
en su fecha de nacimiento? Esa persona puede no haber nacido en el año 1993, de forma que es obvio que debemos mejorar
Utilizamos cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.  Aceptar este aspecto del

http://www.elladodelgeek.com/printf­y­scanf­en­c/ 2/5
2/4/2017 printf y scanf en el lenguaje de programación C

programa.

¿Podemos mejorar otro aspecto del programa? Sí. Podemos de nir el año “2014” como una constante, ya que no se va a cambiar su valor
dentro del programa.

Vamos a mejorar los dos aspectos del programa y ver la explicación de los cambios:

#include <stdio.h> 
#define anioActual 2014 //constante 
int main(){ 
  
  int fNacimiento = 0, edad = 0; //inicializamos las variables a 0 
  
  printf("Introduce tu fecha de nacimiento: "); //pedimos la fecha de nacimiento 
  fflush(stdout); //vacíamos el buffer de salida 
  scanf("%d",&fNacimiento); //guardamos el valor introducido en la variable 
  
  edad = anioActual ‐ fNacimiento; //calculamos la edad 
  
  printf("Tienes %d años.\n", edad); //mostrar la edad 
  
  return 0; 
}

Viendo el ejemplo, utilizamos scanf() para guardar el valor introducido por el usuario en la variable fNacimiento. Y lo hacemos siguiendo la
sintaxis scanf(“tipo_de_dato”,&variable_destino);, donde tipo_de_dato es el formato de información que vamos a capturar y variable_destino
es la variable donde se guardará esta información.

 Cuando el valor que queremos capturar es una palabra (cadena) no debemos especi car la variable donde se guardará esta 
cadena con el símbolo (&) debemos poder directamente el nombre de la variable porque en el fondo es un array. Vamos a ver
un ejemplo:
#include <stdio.h> 
int main(){ 
  char nombre[12]; 
  
  printf("Introduce tu nombre: "); 
  fflush(stdout); 
  scanf("%s",nombre); 
  
  printf("Hola, %s :)\n", nombre); 
  
  return 0; 
}

 Si la información que queremos pedir al usuario puede contener espacios, es posible que scanf() no sea la mejor opción. En 
su lugar podríamos utilizar la función fgets().

En las próximas publicaciones vamos a ver los operadores aritméticos, relacionales y lógicos que podemos usar en C y cómo utilizarlos para
hacer cálculos y comparar datos en nuestro programa. Nos vemos

« Tipos de datos y variables
en C
Operadores y expresiones
en C »
Twittear Compartir 0

Publicado por Mohammadi El Youzghi / 06/07/2014 / Programación / 8 comentarios 4.75 (total: 8)

Etiquetas: C/C++ Lenguaje de programación C printf scanf

Acerca de Mohammadi El Youzghi


Técnico superior en Administración de Sistemas Informáticos en Red
Segundo clasi cado Catskills 2014 - Soporte de redes
Junior Web Developer & Database Administrator
MongoDB, Node.js, Express.js & AngularJS newbie

Utilizamos cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.  Aceptar

http://www.elladodelgeek.com/printf­y­scanf­en­c/ 3/5
2/4/2017 printf y scanf en el lenguaje de programación C

8 COMENTARIOS  

Jader arcia
Quiero ayuda para sumar dos números y imprimir por pantalla el mayor de los dos numeros

02/08/2016 - 18:11 / Responder

Mohammadi El Youzghi Autor

Hola Jader,

Aunque es un poco tarde, la solución a tu problema sería algo parecido a lo siguiente:

#include <stdio.h> 
int main(){ 
int num1 = 50; 
int num2 = 20; 
int suma = num1 + num2; 
printf("La suma de %d + %d = %d", num1, num2, suma);

if (num1 > num2) { 
printf("El primer numero (%d) es mayor que el segundo (%d)", num1, num2); 
} else if (num2 > num1) { 
printf("El segundo numero (%d) es mayor que el primero (%d)", num2, num1); 
} else { 
printf("Los numeros son iguales"); 

18/12/2016 - 18:43 / Responder

Pablo
Muy bueno, si pusieras un video sería mucho mejor para poder aprenderlo más rápido

27/09/2016 - 01:43 / Responder

Mohammadi El Youzghi Autor

Gracias, Pablo.

No dispongo de mucho tiempo libre. De hecho, últimamente no publico nada por este motivo.

Saludos,

18/12/2016 - 18:35 / Responder

Angelica
Buenas Tardes, me podrian ayudar realizar las siguientes operaciones? Por favor :c

calculo de promedio de alumnos


calculo de alumnos aprovados y reprobados
calculo de porcentaje de estudiantes exelentes
informacion detallada de cada uno

SON 15 ALUMNOS CON LOS CUALES HAY QUE TRABAJAR Gracias :3

11/12/2016 - 22:46 / Responder

Mohammadi El Youzghi Autor


Utilizamos cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.  Aceptar

http://www.elladodelgeek.com/printf­y­scanf­en­c/ 4/5
2/4/2017 printf y scanf en el lenguaje de programación C

Hola Angelica,

Entiendo que es un ejercicio que tendrías que realizar tú para aprender.

De todas formas, con sólo el número 15 no se pueden sacar los datos que necesitas.
Si publicases el ejercicio, te puedo guiar un poco

Gracias

Saludos,

18/12/2016 - 18:30 / Responder

Santiago
Holaaaa, mee gusto tu pagina, me gustaria si me podrias ayudar hacer una calculadora en borland6

13/02/2017 - 21:42 / Responder

Mohammadi El Youzghi Autor

Respondido por mensajes de Página de Facebook

17/02/2017 - 15:07 / Responder

Publicar un comentario

Comentario

Nombre * Email * ENVIAR COMENTARIO

Síguenos en Facebook!

elladodelgeek.com
49 Me gusta

Me gusta esta página Usar aplicación

Sé el primero de tus amigos en indicar que le
gusta esto.

Buscar... 

Publicaciones recientes

Curso PHP: Bucle foreach


 23/08/2015

Curso PHP: Arrays multidiminesionales


 11/07/2015
Utilizamos cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.  Aceptar

http://www.elladodelgeek.com/printf­y­scanf­en­c/ 5/5