
















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Felix, Profesor: , Carrera: Ingeniería Mecánica, Universidad: UVA
Tipo: Apuntes
1 / 24
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!

















Fundamentos de Informática
Departamento de Ingeniería de Sistemas y Automática. EII.
Universidad de Valladolid
Especificadores de formato Funciones de E/S de caracteres Funciones de E/S de cadenas de caracteres
Escribe en pantalla con formato: formato: cadena de formato de salida de datos. arg_i : argumentos a incluir dentro del formato (pueden ser variables o expresiones).
#include <stdio.h> main() { float b = 5.1; int a=6; printf("Valores = %d, %f, %d\n", 5 , b, 3*a); }
La salida por pantalla es: Valores = 5, 5.1, 18
#include <stdio.h> main() { float b = 5.1; int a=6; printf("Valores = %d, %f, %d\n", 5 , b, 3*a); }
La salida por pantalla es: Valores = 5, 5.1, 18
#include <stdio.h> main() { printf("printf\n"); printf("%c%c%c%c%c%c%c",'p','r','i','n','t','f','\n'); printf("%s\n","printf"); }
La salida es: printf printf printf
#include <stdio.h> main() { int a=10 , b = 15; printf("%d + %d = %d\n", a , b , a + b); printf("%d + %d = [%8d]\n", a , b , a + b); }
La salida es: 10 + 15 = 25 10 + 15 = [ 25]
8 espacios en total, ajustados a la derecha
La gran mayoría de los programas aceptan unos datos de entrada que procesan de acuerdo con su código para producir unos resultados como salida.
Los programas que tenemos hasta ahora no resultan muy útiles. No tienen capacidad para aceptar ningún tipo de entrada. Todavía somos incapaces de hacer que el ordenador reciba cualquier tipo de información que le podríamos dar a través del teclado.
Lee entradas con formato desde el teclado: formato: cadena de formato de entrada de datos. dir_i : argumentos a incluir dentro del formato (direcciones de variables donde se almacenarán los valores leídos).
#include <stdio.h> main() { int a,b; float f; scanf("%d %d %f",&a,&b,&f); }
Hay que pasar a la función scanf la dirección de la variable. Esto se logra con el operador &
El programa necesita saber la dirección de memoria en la que debe ser almacenado el valor que el usuario introduce por teclado.
Si omitimos el operador & el programa intentará almacenar el valor de la variable en una posición de memoria inválida y el programa dejará de funcionar.
¡ATENCIÓN: Este error es un fallo que no detectará el compilador!
#include <stdio.h>
main()
{ int a,b; float f; a=8; scanf("%d %d %f", a , &b, &f); }
ERROR: ¡¡¡El valor introducido por teclado va a ser almacenado en la dirección de memoria 8!!!
Por ejemplo, el usuario podría teclear 8:9.1:3.1e
Si en la cadena de formato se incluyen otros caracteres además de los especificadores de formato y el espacio en blanco, esos caracteres extra deben también ser introducidos por el usuario desde el teclado para que la lectura sea correcta
¡¡Nótese el uso de lf como especificador para el double!!
scanf recoge datos hasta que encuentra un espacio en blanco o un retorno de carro
#include <stdio.h> main() { char cadena[80]; printf("Introduzca una cadena de caracteres:\n"); scanf("%s",cadena); }
Un ejemplo sería: Introduzca una cadena de caracteres: texto
El identificador de una cadena de caracteres almacena la dirección del primer caracter de la misma. Por ello, no debe ponerse &
scanf agrega el carácter '\0' al final
't' 'e' 'x'
'o' '\0'
80 char
cadena
‘t'
El usuario teclea cuando quiere.
'a'
'l'
'o'
'H'
Lee desde el buffer el carácter que corresponde ('H').
's'
Se queda en espera de nuevo carácter. Lee carácter fresco desde el teclado.
Funciones de E/S de cadenas de caracteres
#include <stdio.h> main() { char cadena[100]; /* variable cadena de caracteres / gets(cadena); / recoge la cadena de teclado / puts(cadena); / escribe la cadena en pantalla / puts("Hola"); / escribe la cadena Hola en pantalla / puts(gets(cadena)); / escribe lo leído */ }
Lee una línea hasta que el usuario teclea carácter de nueva línea '\n' (Intro)