Codificación aprenderaprogramar.com: CU00522F
PEDIR DATOS POR TECLADO EN C
Una tarea con la que nos enfrentamos con frecuencia como programadores es la de pedir datos al usuario. Por ejemplo, que introduzca un número o que introduzca una palabra. La sintaxis básica para pedir datos al usuario a través de teclado se basa en la función scanf y es la siguiente:
scanf ("%codigoFormato", &nombreVariableQueAlmacenaLaEntrada); |
El indicador de tipo de dato (código de formato o cadena de control) hace explícito el tipo de dato que se espera recibir en la entrada. Se usan los mismos códigos para mostrar datos en pantalla con printf. Los indicadores de tipos principales son los siguientes:
Código de formato |
Significado |
%d |
Tipo entero (int) |
%ld |
Tipo entero largo (long) |
%lf |
Tipo decimal doble precisión (double) |
%c |
Tipo carácter |
%s |
Tipo cadena alfanumérica (array de caracteres) |
Existen más códigos de formato (por ejemplo %e, %f ó %g para tipo float) y es posible introducir modificadores para especificar precisión decimal o longitud de los datos, pero con estos códigos básicos nos resultará suficiente para las construcciones más habituales en programas.
Un ejemplo básico de uso de esta sentencia lo vemos a continuación. Ejecuta este código y comprueba el resultado:
#include <stdio.h> #include <stdlib.h> // Ejemplo aprenderaprogramar.com int main() { int valorUsuario; printf("Introduzca un numero entero: "); scanf("%d", &valorUsuario); printf("Gracias"); return 0; } |
Un aspecto que puede resultar curioso es que si bien C no incluye el tipo predeterminado de dato cadena alfanumérica (String), sí aporta herramientas para un tratamiento más cómodo de cadenas de caracteres, como el código de formato %s.
scanf es una instrucción que se usa comúnmente junto a printf como veremos en ejemplos de código.
EJERCICIO
Dado el siguiente código:
#include <stdio.h> #include <stdlib.h> // Ejercicio aprenderaprogramar.com int main() { int valorUsuario; printf("Introduzca su peso en kg como valor numerico: "); scanf("%s", &valorPeso); printf("Gracias"); return 0; } |
Responde estas preguntas:
a) ¿Por qué es incoherente el siguiente código? Señala qué errores contiene.
b) ¿Cómo podemos hacerlo coherente?
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.