You are on page 1of 16

2.7. FUNCIONES BASICAS DE ENTRADA Y SALIDA.

INGENIERA MECNICA

REALIZADO POR: JESS ENRIQUE DOLORES JIMNEZ

Subsecretaria de Educacin Superior

NDICE
Introduccin 2.7. FUNCIONES BSICAS DE ENTRADA Y SALIDA Entrada y salida del lenguaje c Funciones de entrada y salida (printf y scanf) Funciones de entrada y salida (puts y gets) Conclusiones Otras fuentes 4 6 10 14 15 3

En este tema nos adentraremos al tema 2.7 que es FUNCIONES BASICAS DE ENTRADA Y SALIDA que se refiere a las operaciones que se producen en el teclado y en la pantalla de la computadora. En C no hay palabras claves para realizar las acciones de Entrada/Salida, estas se hacen mediante el uso de las funciones de la biblioteca estndar (stadio.h). Para utilizar las funciones de E / S debemos incluir en el programa el archivo de cabecera, ejemplo: stdio.h, mediante la declaratoria: #include <stdio.h>

ENTRADA Y SALIDA DEL LENGUAJE C Se refiere a las operaciones que se producen en el teclado y en l a pantal l a de l a computadora. En C no hay pal abras cl aves para realizar l as acciones de Entrada/Salida, estas se hacen mediante el uso de las funciones de l a biblioteca estndar (stadio.h).Para utilizar las funciones de E / S debemos incluir en el programa el archivo de cabecera, ejemplo: stdio.h, mediante l a declaratoria: #include <stdio.h> Las Funciones de E/S ms simples son getchar() que un carcter del teclado, espera un retorno, es decir un enter y e l e c o a p a r e c e . E s d e c i r l a t e c l a p r e s i o n a d a . putchar(): Imprime un carcter en la pantalla, en la posicin actual del cursor. Algunas variaciones: getche(): A p a r e c e e l E c o getch(): N o a p a r e c e e l e c o e s t a s i n s t r u c c i o n e s s e e n c u e n t r a n e n l a b i b l i o t e c a conio.h Programa que espera que se presiona una tecla, l a muestra en pantalla, y adems muestra el carcter siguiente: Ejemplo 1: #include <stdio.h> #include <conio.h> main() { char car; clrscr(); /*Se encarga de borrar la pantalla por eso sel l a m a screen*/ clear lee

car=getchar(); putchar(car+1); getch(); return 0; } Ejemplo 2: #include <stdio.h> #include <conio.h> main() { char x; /*Declaramos x como caracter*/ printf("Para Finalizar Presione cualquier Tecla:"); x= getchar();/*Captura y muestra el caracter presionado*/ getch();/*Espera a que se presione cual quier otra tecl apara final izar*/ return 0; }

FUNCIONES DE ENTRADA Y SALIDA (printf y scanf)


Salida de datos con formato: la funcin printf() La funcin printf() (de print = imprimir y f = formato) sirve para escribir datos en eldispositivo de salida estndar (generalmente la pantalla) con un formato determinadopor el programador. La forma general de utilizarla es la siguiente: printf(cadena_de_formato, datos); El prototipo de printf() se encuentra en el archivo de cabecera stdio.h (de std =standard e io = input/output, es decir, entrada/salida; por lo tanto, stdio es unacrnimo de entrada/salida estndar)El primer argumento, la cadena_de_formato, especifica el modo en el que se debenmostrar los datos que aparecen a continuacin. Esta cadena se compone de una seriede cdigos de formato que indican a C qu tipo de datos son los que se deseanimprimir. Todos los cdigos estn precedidos del smbolo de porcentaje (%). Porejemplo, el cdigo %i indica a la funcin que se desea escribir un nmero de tipo int, y el cdigo %f, que se desea escribir un nmero real de tipo float. La forma ms simple de utilizar printf() es: int a;a = 5;printf("%i", a); Esto escribir el valor de la variable entera a en la pantalla, es decir, 5. Fjese en que el primer argumento de printf() es una cadena (y, por lo tanto, se escribe entre comillas)cuyo contenido es el cdigo del tipo de dato que se pretende escribir. El segundo argumento es el dato mismo. En una sola instruccin printf() pueden escribirse varios datos. Por ejemplo: int a;float x;a = 5;x = 10.33;printf("%i%f", a, x); Observe detenidamente la cadena de formato: primero aparece %i y luego %f.Esto indica que el primer dato que debe imprimirse es un entero, y el segundo, un real. Despus, aparecen esos datos separados por comas y exactamente en el mismo orden que en la cadena de formato: primero a (la variable entera) y luego x (la variable real).El resultado ser que en la pantalla se escribirn los nmeros 5 y 10.33.Los cdigos de formato que se pueden utilizar en printf() son:

Cdigo %d %i %c %s %f %ld %u %lf %h %o %x %e %p %%

Formato Un entero Un entero Una carcter Una cadena Un real Entero largo Decimal sin signo Doble posicin Entero corto Octal Hexadecimal Notacin Cientfica Puntero Imprime Porcentaje

Hay cdigos que admiten modificadores. Por ejemplo: Los cdigos numricos %i, %d, %u (para nmeros enteros) y %f, %e y%g (para nmeros reales), permiten insertar modificadores de longitud l (longitud doble) y h (longitud corta). As, por ejemplo, %ld indica que se va a imprimir un entero de longitud doble (long int); %hu sirve para enteros cortos sin signo (unsignedshort int); %lf indica que se imprimir un nmero real de longitud doble (double),etc. El cdigo %f (nmeros reales) se pueden usar con unas modificadoras deposiciones decimales que se desean mostrar. Por ejemplo, con %10.4f obligamos a que se impriman diez dgitos a la izquierda de la coma decimal y cuatro a la derecha. La escritura se ajusta a la derecha. Para ajustarla a la izquierda se utiliza el modificador -, de esta forma: %10.4f

El cdigo %s (cadenas de caracteres) se puede combinar con un especifi cadorde longitud mxima y mnima de la cadena. Por ejemplo, %4.8s escribe una cadena de al menos cuatro caracteres y no ms de ocho. Si la cadena tiene ms, se pierden los que excedan de ocho. Tambin se puede utilizar el modificador - para alinear el texto a la izquierda. Adems de los cdigos de formato, en la cadena de formato puede aparecer cualquier texto entremezclado con los cdigos. A la hora de escribir en la pantalla, los cdigos sern sustituidos por los datos correspondientes, pero el resto del texto aparecer de forma literal. Por ejemplo: int a;float x;a = 5;x = 10.33;printf("El nmero entero es %i y el real es %f", a, x); Lo que aparecer en la pantalla al ejecutar este fragmento de cdigo ser: El nmero entero es 5 y el real es 10.33 Una ltima observacin sobre printf(). Hay ciertos caracteres que no son directamente imprimibles desde el teclado. Uno de ellos es el salto de lnea. Para poder ordenar a printf() que escriba un salto de lnea (o cualquier otro carcter no imprimible) se utilizan los cdigos de barra invertida, que con cdigos especiales precedidos del carcter \.En concreto, el carcter salto de lnea se indica con el cdigo \n. Observe las diferencias entre estos dos bloques de instrucciones para intentar comprender la importancia del salto de lnea: int a; a = 5; printf("La variable a vale %i", a); a = 14; printf("La variable a vale %i", a); El resultado en la pantalla de la ejecucin de estas instrucciones es: La variable a vale 5La variable a vale 14 Veamos el mismo ejemplo usando el cdigo del salto de lnea (\n): int a; a = 5;

printf("La variable a vale %i\n", a); a = 14; printf("La variable a vale %i", a); El resultado en la pantalla ser: La variable a vale 5La variable a vale 14 Entrada de datos con formato: la funcin scanf() La funcin scanf() es, en muchos sentidos, la inversa de printf() . Puede leer desde eldispositivo de entrada estndar (normalmente el teclado) datos de cualquier tipo delos manejados por el compilador, convirtindolos al formato interno apropiado.Funciona de manera anloga a printf(), por lo que su sintaxis es: scanf(cadena_de_formato, datos); El prototipo de scanf() se encuentra en el archivo de cabecera stdio.h (de std =standard e io = input/output, es decir, entrada/salida)La cadena_de_formato tiene la misma composicin que la de printf(). Los datos son lasvariables donde se desea almacenar el dato o datos leidos desde el teclado. Cuidado! Con los tipos simples, es necesario utilizar el operador & delante del nombre de la variable, porque esa variable se pasa por referencia a scanf() para que sta pueda modificarla. Por ejemplo: int a, b; float x; scanf("%d", &a); scanf("%d%f", &b, &x); La primera llamada a scanf() sirve para leer un nmero entero desde teclado y almacenarlo en la variable a. La segunda llamada lee dos nmeros: el primero, entero, que se almacena en b; y, el segundo, real, que

se almacena en x. La funcin scanf() tiene alguna otra funcionalidad aadida para el manejo de cadenas de caracteres que por ahora no vamos a discutir, para no agobiar. Ejemplo de uso de scanf() y printf() Debido a la relativa complejidad de estas funciones de entrada y salida, vamos a presentar un pequeo ejemplo de traduccin de pseudocdigo a C. Se trata de un algoritmo que lee dos nmeros enteros, A y B. Si A es mayor que B los resta, y en otro caso los suma. En pseudocdigo: algoritmo suma_y_resta variables a y b son enteros inicio escribir ("Introduzca dos nmeros enteros")leer(a, b) si (a < b) entonces escribir("La suma de a y b es:", a+b) si_no escribir("La resta de a menos b es:", ab) fin En lenguaje C: /* Programa suma y resta */ #include <stdio.h> int main() {

10

int a, b; printf ("Introduzca dos nmeros enteros\n"); scanf("%d%d", &a, &b); if (a < b)printf("La suma de %d y %d es: %d", a, b, a+b); elseprintf("La resta de %d menos %d es: %d", a, b, ab); return 0; }

FUNCIONES DE ENTRADA Y SALIDA (puts y gets)

Funcin gets

Lee una cadena de carcter introducido por el teclado. Se puede introducir caracteres hasta que se d un retorno de carro, (enter); el cual no es parte de la cadena; en sulugar se coloca un terminador nulo \0.Sintaxis: char *gets(char *s); Lee una cadena desde stdin.gets lee una cadena de caracteres terminada con un retorno de lnea desde la entrada estndar y la almacena en s. El carcter de retorno de lnea es reemplazado con el carcter nulo en s. Observa que la manera en que hacemos referencia a una cadena dentro de la funcines char *, el operador * indica que debemos pasar como argumento la direccin de memoria donde estar almacenada la cadena a leer. Veremos la explicacin en el captulo de punteros, baste decir que a nivel del compilador char *cad y char cad[], son equivalentes, o casi.gets permite la entrada de caracteres que indican huecos, como los espacios y los tabuladores. gets deja de leer despus de haber ledo un carcter de retorno de lnea; todo aquello ledo ser copiado en s, incluido en carcter de retorno de lnea. Esta funcin no comprueba la longitud de la cadena leda. Si la cadena de entrada no es lo suficientemente larga, los datos pueden ser sobrescritos o corrompidos. Ms adelante veremos que la funcin f gets proporciona mayor control sobre las cadenas de entrada. Valor de retorno: Si tiene xito, gets devuelve la cadena s, si se encuentra el

11

fin_de_fichero o se produce un error, devuelve t NULL. Ejemplo: char cad[80]; do { gets(cad); } while (cad[0] != '\000'); En este ejemplo, el programa permanecer leyendo cadenas desde el teclado mientras no introduzcamos una cadena vaca. Para comprobar que una cadena est vaca basta con verificar que el primer carcter de la cadena es un carcter nulo. Funcin puts Imprime en pantalla, el argumento guardado en la variable que se manda a impresin. Sintaxis: int puts(const char *s); Facultad de Informtica UPONIC Enva una cadena a stdout.puts enva la cadena s terminada con nulo a la salida estndar stdout y le aade el carcter de retorno de lnea. Valor de retorno: Si tiene xito, puts devuelve un valor mayor o igual a cero. En caso contrario de volver el valor EOF. Ejemplo: char cad[80]; int i; do { gets(cad); for(i = 0; cad[i]; i++) if(cad[i] == ' ') cad[i] = '_'; puts(cad); } while (cad[0] != '\000');

12

Empezamos a llegar a ejemplos ms elaborados. Este ejemplo leer cadenas en "cad", mientras no introduzcamos una cadena vaca. Cada cadena ser recorrida carcter a carcter y los espacios de sustituirn por caracteres '_'. Finalmente se visualizar la cadena resultante. Llamo tu atencin ahora sobre la condicin en el bucle for, comparndola con la del bucle do while. Efectivamente son equivalentes, al menos para i == 0, la condicin del bucle do while podra haberse escrito simplemente como while (cad[0]). De hecho, a partir de ahora intentaremos usar expresiones ms simples.

13

En este tema llegamos a conocer acerca de lo que son las FUNCIONES BASICAS DE ENTRADA Y SALIDA que son ms que nada las instrucciones bsicas de entrada salida son printf y scanf, las cuales permiten respectivamente enviar (print, imprimir) o recibir (scan, leer) informacin. Printf La funcin printf permite escribir en la salida estndar (monitor), proporcionando un formato especfico para los datos a escribir. Scanf La funcin scanf permite leer desde la entrada estndar, proporcionando un formato especfico para los datos a recibir. De forma anloga a la funcin printf, esta funcin permite reconocer los tipos de datos especificados por el estndar ANSI de C tales como nmeros, caracteres y cadenas.

14

http://es.scribd.com/doc/54735075/Entradas-y-Salidas-Del-Lenguaje-C

https://www.google.com.mx/#hl=es&tbo=d&q=funciones+de+entrada +y+salida+en+programacion&revid=133674944&sa=X&ei=xUiUZ2CCtHrrAGpiIAY&ved=0CGYQ1QIoAA&bav=on.2,or.r_gc.r_pw.r_qf. &fp=ab09ac6fdb5051a&biw=1303&bih=707

https://sites.google.com/site/programacionyal/home/unidad-2/2-7funciones-basicas-de-entrada-y-salida

https://sites.google.com/site/elsaverdelavida/unidad-2/2-7-funcionesbasicas-de-entrada-y-salida

15

You might also like