facebook cdr twitter cdr   instagram cdr
Jueves, 05 October 2017 16:57

6. Interacción con el usuario

Escrito por
Valora este artículo
(0 votos)

En este capítulo veremos un poco más sobre como interactuar con el usuario de nuestros programas desde la consola, utilizando printf() como vimos anteriormente, así como scanf() para la lectura del teclado.

6.1 Imprimir por pantalla

Como hemos visto hasta ahora en los ejemplos, hay una función que utilizamos para sacar por pantalla textos arbitrarios o el resultado de alguna operación: la función printf().

Si miramos su definición, no nos aclarará demasiado:

int printf (const char *TEMPLATE, ...)

Veámosla poco a poco. Se trata de una función de la biblioteca estándar, lo que quiere decir que para utilizarla tenemos que incluir previamente su definición. La encontraremos en stdio.h

Lo primero que vemos en la definición es que es una función de tipo int, lo que quiere decir que devuelve un entero. Ese entero es el número de caracteres impresos en la pantalla, o un número negativo en caso de que se produzca algún error.

Lo siguiente a notar es su primer argumento: const char *TEMPLATE. Se trata de una cadena de caracteres (char *) que no será modificada por la función (const), con lo que puede ser una constante de cadena o una variable que contenga una cadena, pero siempre debe acabar con el carácter nulo \0.

Y luego vienen esos extraños puntos suspensivos. Esa elipsis nos indica que como argumentos adicionales de printf() podemos poner una serie ilimitada de otros argumentos, que se supone que la función sabrá qué hacer con ellos. Y eso es justamente lo que hace tan fabulosa y útil a printf().

Como hemos visto, el uso más simple de printf() es imprimir una cadena de texto simple y corriente. Como ya vimos:

cap05

Y también hemos visto printf() también puede, con un argumento extra y una sintaxis especial, imprimir un número entero que hayamos almacenado en una variable:

cap06

Aquí el punto de inserción es la secuencia %i. printf() siempre trata las secuencias que comiencen por % como secuencias de control que le dicen que debe imprimir algo que le proporcionamos en los otros argumentos. Así, podemos imprimir varios enteros distintos en los sitios que queramos de la cadena, insertando varias de estas secuencias, en el caso de los enteros (explicado en el articulo de Ayuda de programación en C) se utiliza este formato %i:

cap07

6.2 Lectura de datos del teclado

La entrada de datos se puede hacer de muchas maneras y entre ellas están desde el uso de dispositivos especiales hasta nuestro simple teclado. La entrada de datos se refiere a cualquier forma de influencia del usuario sobre los datos que posee el sistema. Con el fin de mostrar una forma de entrada simple para el aprendizaje vamos a hablar en mayor profundidad de la función scanf() que se encuentra definida en y que se usa para capturar diferentes tipos de datos.

6.2.1 La función scanf()

scanf() es una de las funciones más usadas por los principiantes para hacer entrada de datos en el lenguaje C. Tiene una sintaxis muy parecida a printf: recibe una cadena con el formato de los datos y luego se ponen las variables en orden que correspondan a ese tipo de datos. Es decir, así como en printf se pueden mostrar por pantalla los datos de varias variables en una misma sentencia, en scanf se pueden capturar varios datos en una sola sentencia.

cap08

Por ahora no nos interesan las demás sentencias, sólo la que contiene scanf. En el código se ve lo siguiente:

cap09

Se observa que la funcion printf dejó en pantalla una petición para que el usuario introdujera un valor. Entonces, scanf recibe como argumento una cadena del formato en que se van a capturar los datos y la lista de variables que van a recibir valores y que deben coincidir con los del formato.

En este caso la cadena de formato, "%i", especifica que el usuario ingresará un número entero. Luego se designa a la variable a para contener a ese número. El símbolo aspersan (&) que precede a numero es para especificar que lo que se está enviando como argumento no es el valor que posee la variable a sino la dirección de memoria en que se encuentra. En este momento eso no tiene mucha relevancia, sólo hay que recordar que se debe usar el símbolo & dentro del scanf. En el momento en que hablemos de punteros veremos más detalles de esto.

Otro ejemplo del uso de scanf:

cap10

Aquí hemos introducido una nueva variable en el código. La cadena de formato, "%i,%i" especifica que el usuario ingresará un número, seguido de una coma, y luego otro número. El primer %i será capturado por la variable a y el segundo por b.

 

Visto 386 veces Modificado por última vez en Martes, 05 December 2017 14:57
Alejandro Carreño

Desarrollador, Programador, Web Master y Community Manager de CDR Consultores

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.

Tweets

RT @cdrconsultores: Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx
Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx

Productos

Servicios

servicios off
website off
desarrollo off
formacion off
negocios off

Facebook

end-logo

 

Nestor M. Carreño T. - Todos los Derechos Reservados
Rescindir de Dios y de los valores morales, lleva no sólo al empobrecimiento espiritual, sino también al empobrecimiento material
Gracias a Usted, Muchas Gracias por Consultarnos, Dios le Bendiga!

Diseño y Desarrollo Nestor M. Carreño T. - CDR Consultores, C.A.