INSTRUCCIONES DE ENTRADA Y SALIDA

El lenguaje C no cuenta propiamente con instrucciones de entrada-salida, por lo que éstas se encuentran dentro de una biblioteca externa conocida como stdio.h. Dentro de esta biblioteca existen funciones que permiten la lectura de variables mediante el teclado, así como la impresión a la pantalla.


LECTURA DE VARIABLES (scanf)


La función scanf permite la lectura de variables desde el teclado, el formato de la función es el siguiente:

scanf (cadena de formato,& variable,...);

La cadena de formato es una cadena de caracteres que indica qué tipo de dato se va a leer (si es del tipo entero, flotante, carácter). Después de la coma viene el nombre de la variable precedido por un &.


Algunos especificadores de formato son los siguientes:


TipoDescripción
d, iEntero decimal con signo
oEntero octal sin signo
uEntero decimal sin signo
xEntero hexadecimal sin signo (en minúsculas)
XEntero hexadecimal sin signo (en mayúsculas)
fComa flotante en la forma [-]dddd.dddd
eComa flotante en la forma [-]d.dddd e[+/-]ddd
gComa flotante según el valor
EComo e pero en mayúsculas
GComo g pero en mayósculas
cUn carácter
sCadena de caracteres terminada en '\0'
%Imprime el carácter %
pPuntero

Sintáxis de la estructura SCANF


  scanf ("% tipo",&variable);

Ejemplos:

scanf ("%d",&n); /*realiza la lectura de n de tipo int*/

scanf ("%f",&l); /*realiza la lectura de l de tipo float*/


En este curso utilizaremos una función especial que se llama getchar. Esta función lee un carácter desde el teclado sin desplegarlo en la pantalla y regresa un valor entero en código ASCII del carácter leído. Este valor es guardado en la función y es usada después en las expresiones donde se requiere evaluar este valor, tal es el caso de las sentencias if del siguiente ejemplo:


#include <stdio.h>

main ()

 {

       int a,b;

       char ch;

       printf ("quiere\n);

       printf ("sumar restar multiplicar dividir\n");

       printf ("introduzca la primera letra:");

       ch = getchar ();

       printf ("\n);

       printf ("introduzca el primer número : ");

       scanf ("%d",&a);

       printf ("introduzca el segundo número :");

       scanf ("%d",&b);

           if (ch == 'd')

                 printf ("%d", a+b);

             else

                  if (ch == 'r')

                        printf ("%d", a-b);

                    else

                         if (ch == 'm')

                               printf ("%d", a*b);

                           else

                                 if (ch== 'd')

                                       printf ("%d", a/b);

                                   else

 }


En este programa, los caracteres esperados sólo serán leídos por la función getchar, si tecleamos un carácter diferente a los establecidos, la pantalla del menú no tendrá ninguna modificación y se pasará a la siguiente línea hasta que getchar reciba un carácter válido. El valor es guardado en memoria y es por eso que en este programa podemos pedir los datos primero y después evaluar las condiciones.


Impresión a Pantalla (PRINTF).


Mediante la función printf, es posible imprimir a pantalla tanto mensajes como el contenido de variables de distintos tipos. Para imprimir mensajes solo es necesario colocar el mensaje entre comillas como en el ejemplo siguiente:


printf ("Hola") ; /*hace aparecer en pantalla la frase Hola*/

para la impresión de variables, es necesario la utilización de cadenas que especifiquen el tipo de variable que se está imprimiendo, por ejemplo:

printf ("%d",n) ; /* imprime el valor de n como un entero*/

printf ("el área del círculo es:%f",area); /*imprime el mensaje y sustituye %f por el valor de "area" expresado como flotante*/


Secuencias de Escape


Dentro de las constantes de carácter hay ciertos caracteres que no reconoce como el carácter "n" o una nueva línea. Para poder tener estos caracteres,el lenguaje C ha implementado una serie de secuencias de escape que nos permite obtener estos caracteres. A continuación se muestran las secuencias de escape y el carácter o valor que se obtiene de ellas.

SECUENCIAS DE ESCAPECARÁCTERSIGNIFICADO
\nNLNueva Linea
\tHTTab Horizontal
\vVTTab Vertical
\bBSRetroceso
\rCRRegreso de Carro
\fFFAvance de Forma
\aBelSeñal Audible
\\\Diagonal Inversa
\??Interrogación
\'' Apóstrofe
\""Comillas
\ooooooNúmero Octal
\xhhhhNúmero Hexadecimal

Ejemplo:

...

     printf ("curso de computación");

...

salida a pantalla:

curso de computación

Con secuencia de escape \n

...

     printf ("curso \n");

     printf ("de\n");

     printf ("computación\n");

...

salida a pantalla

curso

de

computación

 

COMENTARIOS


Los comentarios son pequeñas cadenas de caracteres que se insertan dentro del listado de un programa (programa fuente) y que no forman parte del mismo, por tanto no generan código ejecutable, que no son traducidas a lenguaje máquina por el compilador. Su función es meramente la de describir el funcionamiento del programa a manera de pequeñas notas que ayudan a hacer más entendible la lectura para personas ajenas a su realización así como recordatorio para uno mismo. Ejemplo:


/*Esta cadena es un comentario*/


EJEMPLO


Finalmente presentamos un programa de ejemplo que muestra la estructura básica de un programa en el lenguaje C. Dado el algoritmo en pseudocódigo presentaremos después su codificación en lenguaje c.

Pseudocódigo

Principal

inicio

       flotante a,b,suma,producto;

       leer (a,b);

       suma ← a+b;

       producto ← a*b;

       imprime ("El primer operador es:",a);

       imprime ("El segundo operador es;",b);

       imprime ("La suma es: ",producto);

       imprime ("El producto es:", producto);

fin


Como las variables a, b, suma, producto, sólo son necesarias dentro del programa principal, estas se declaran como variables locales de la función main. El código respectivo en lenguaje C es el siguiente:


/*Este programa calcula la suma y el producto de dos números reales*/


#include <stdio.h>

main()

{

       float a,b,suma,producto;

       scanf ("%f",&a);

       scanf("%f",&b);

       suma= a + b;

       producto = a * b;

       printf ("el primer operador es: %f\n",a);

       printf ("el segundo operador es: %f\n".b);

       printf ("la suma es:%f\n",suma);

       printf ("el producto es:%f\n",producto);

}