Vous êtes sur la page 1sur 9

1/8/2016

printf y scanf en el lenguaje de programacin C

printf y scanf en C/C++


printf y scanf son quizs las funciones (comandos) ms utilizadas en programas bsicos de C.
Sirven para imprimir informacin por pantalla y pedir datos a usuarios por pantalla,
respectivamente. Se incluyen en la biblioteca de funciones stdio.h. Vamos a ver cmo
gestionar la informacin guardada en forma de variables utilizando estas funciones
printf() y scanf().

printf y scanf: printf()


Para imprimir texto por pantalla, utilizamos la funcin printf(). Utilizar esta funcin es ms
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 tambin podemos imprimir


valores de variables utilizando la misma funcin printf(). En el artculo anterior hemos visto
los tipos de datos ms utilizados en el lenguaje de programacin C. Bien, para imprimir

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

1/9

1/8/2016

printf y scanf en el lenguaje de programacin C

valores de variables utilizando la funcin printf(), podemos empezar viendo el siguiente


ejemplo:

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

En el ejemplo vemos que la variable num1 vale 10 y usando la funcin printf() imprimimos
un texto junto al valor de la variable. Y si nos jamos vemos que hemos indicado la posicin
en la que se imprimir el valor de variable utilizando %d y le pasamos como parmetro
separado por coma (,) la variable de la cual queremos imprimir el valor.
A continuacin vemos un ejemplo en que imprimiremos diferentes textos junto a valores de
variables por pantalla utilizando printf() pasandole las variables como parmetros.

#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 nmero 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 sera:


5 + 5 = 10
El nmero pi es aprox: 3.141592
http://www.elladodelgeek.com/printf-y-scanf-en-c/

2/9

1/8/2016

printf y scanf en el lenguaje de programacin C

Se puede usar la palabra 'Hola' para saludar


La primera letra del abecedario es: a

\n se usa para imprimir un salto de lnea. De esta forma no se escribe todo


el texto en una nica lnea. Tambin podemos usar \t para insertar una

tabulacin en la posicin que queramos del mensaje de texto.

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

Formato

nmeroentero

%d

nmeroreal

%f

carcter

%c

cadenadetexto

%s

En el ejemplo anterior, hemos visto cmo imprimir el valor de una nica variable. Pero como
ya hemos visto en artculos anteriores, en una misma funcin printf() podemos imprimir ms
de una variable a la vez. Para ello solo debemos pasarle las variables como parmetros
separados por coma. A continuacin vemos un ejemplo.

#include <stdio.h>
int main(){
int num1 = 10;
char mensaje[] = "Hola";

Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.
printf("%s, soy el nm
ero %d. \n", mensaje, num1);
Aceptar

return 0;
}

Cuidado, porque las variables deben estar en el mismo orden que la posicin 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 cdigo no es
vlido:
http://www.elladodelgeek.com/printf-y-scanf-en-c/

3/9

1/8/2016

printf y scanf en el lenguaje de programacin C

#include <stdio.h>
int main(){
int num1 = 10;
char mensaje[] = "Hola";

printf("%s, soy el nmero %d. \n", num1,


mensaje);

return 0;
}

Porque en este caso el compilador intentar poner el valor de la variable num1 en la


posicin 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 nmero entero), pues nos dara
error.

printf y scanf: scanf()


La funcin scanf() se utiliza principalmente para pedir informacin al usuario. Por ejemplo, si
queremos calcular la edad de una persona nos es imposible si no sabemos su fecha de
nacimiento.
Cmo podemos conseguir la fecha de nacimiento para usarla dentro del programa?
Preguntndole personalmente
Preguntando a una persona cercana
Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.

Mirando en su Facebook
Cotillendole la cartera

Aceptar

[..]
Bien, todas las opciones anteriores son vlidas, vamos a crear nuestro programa sabiendo
con anterioridad la fecha de nacimiento:

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

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

4/9

1/8/2016

printf y scanf en el lenguaje de programacin C

int fNacimiento = 1993;


int edad = 2014 - fNacimiento;

printf("Tienes %d aos.\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 basndose en su fecha de nacimiento? Esa persona
puede no haber nacido en el ao 1993, de forma que es obvio que debemos mejorar este
aspecto del programa.
Podemos mejorar otro aspecto del programa? S. Podemos de nir el ao 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 explicacin 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); //vacamos el buffer de salida
scanf("%d",&fNacimiento); //guardamos el valor
introducido en la variable
Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.

Aceptar

edad = anioActual - fNacimiento; //calculamos la edad

printf("Tienes %d aos.\n", edad); //mostrar la edad

return 0;
}

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

5/9

1/8/2016

printf y scanf en el lenguaje de programacin C

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 informacin
que vamos a capturar y variable_destino es la variable donde se guardar esta informacin.

Cuando el valor que queremos capturar es una palabra (cadena) no


debemos especi car la variable donde se guardar esta cadena con el

smbolo (&) 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 informacin que queremos pedir al usuario puede contener espacios,

es posible que scanf() no sea la mejor opcin. En su lugar podramos utilizar


la funcin fgets().

Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.
Aceptar

En las prximas publicaciones vamos a ver los operadores aritmticos, relacionales y lgicos
que podemos usar en C y cmo utilizarlos para hacer clculos y comparar datos en nuestro
programa. Nos vemos

Tiposdedatosyvariables
enC

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

Operadoresyexpresiones
enC

6/9

1/8/2016

printf y scanf en el lenguaje de programacin C


Compartir

Twittear

Publicado por Mohammadi El Youzghi / 06/07/2014 / Programacin / 0

4.6(total:5)

comentarios

Etiquetas:

C/C++

Lenguaje de programacin C

printf

scanf

Acerca de Mohammadi El Youzghi


Tcnico superior en Administracin de Sistemas Informticos en Red
Segundo clasi cado Catskills 2014 - Soporte de redes
Junior Web Developer & Database Administrator
MongoDB, Node.js, Express.js & AngularJS newbie

Publicar un comentario
Comentario

Nombre *

Email *

ENVIAR COMENTARIO

Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.
Aceptar

Sguenos en Facebook!

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

7/9

1/8/2016

printf y scanf en el lenguaje de programacin C

elladodelgeek.com
29Megusta

Megustaestapgina

Usaraplicacin

Selprimerodetusamigosenindicarquele
gustaesto.

Buscar...

Publicaciones recientes

Curso PHP: Bucle foreach


23/08/2015

Curso PHP: Arrays multidiminesionales


11/07/2015

Curso PHP: Arrays simples y asociativos


03/06/2015

Curso PHP: Operaciones con cadenas


27/05/2015

Curso PHP: Estructura de control SWITCHCASE

Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.
25/05/2015
Aceptar

Nube de etiquetas

Acceso remoto

antivirus

AVG Internet Security 2014


Conexin segura

apariencia
botones

Control remoto

Autenticacin
Clave privada

customizer

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

AVG Antivirus Pro 2014


Clave pblica

custopack

datos

Claves RSA
estilos

comandos

Generar claves RSA


8/9

1/8/2016

printf y scanf en el lenguaje de programacin C

Google

hearthstone

licencia

linux

seguridad

SEO

logo

hostinger

icono

navegacin

Servidor SSH

indexacin

o cial

servidor web

orb

juego
patcher

sistema

legal

Lenguaje de programacin C

personalizar

temas

universal

proteger
ventanas

robots.txt
windows 7


Preguntas frecuentes

Acerca de

Utilizamoscookiesparamejorarlaexperienciadeusuario.Sicontinasnavegandoconsideramosqueaceptassuuso.
Aceptar

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

9/9