Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6
Manual para para crear tu propia biblioteca en C/C++
Las bibliotecas permiten el uso de funciones en un programa sin la necesidad de escribir
su código en nuestro programa, únicamente llamando a la biblioteca donde está contenida.
1º) Genera las funciones que te interesan y escribelas todas juntas (codigo y cabeceras)
en un mismo archivo de texto (Puedes usar el editor de texto del compilador, el bloc de notas,
igual da...) tal y como se ilustra a continuación con un sencillo ejemplo:
#include <stdio.h>
# include <conio.h>
#include <milibreria.h>
int main(void)
{
int X,Y;
printf("Introduzca dos numeros enteros para multiplicarlos, sumarlos y restarlos \n");
printf(" Primer numero: ");
scanf("%d",&X);
printf(" Segundo numero: ");
scanf("%d",&Y);
printf("X*Y=%d \n",multiplica(X,Y));
printf("X+Y=%d \n",suma(X,Y));
printf("X-Y=%d \n",resta(X,Y));
getch();
}
#include <stdio.h>
#include "milibreria.h"
int main(void)
{
int X,Y;
printf("Introduzca dos numeros enteros para multiplicarlos, sumarlos y restarlos \n");
printf(" Primer numero: ");
scanf("%d",&X);
printf(" Segundo numero: ");
scanf("%d",&Y);
printf("X*Y=%d \n",multiplica(X,Y));
printf("X+Y=%d \n",suma(X,Y));
printf("X-Y=%d \n",resta(X,Y));
getch();
}
La Función fflush en Lenguaje C
#include <stdio.h>
int main()
{
int a, b;
printf( "Introduzca el primer numero: " );
scanf( "%d", &a );
printf( "Introduzca el segundo numero: " );
scanf( "%d", &b );
printf( "Los valores son: %d, %d ", a, b );
return 0;
}
el programa se detiene a la espera de que el usuario teclee el dato de entrada requerido, el cual es
almacenado, temporalmente, en el buffer (memoria intermedia) de la entrada estándar. Y cuando
se pulsa la tecla INTRO, es, en ese momento, cuando a la variable a se le asigna el valor
introducido. Pero, además, se produce un salto de línea automático, de forma que, después de
introducir el número 76, la siguiente instrucción se muestra una línea más abajo. De igual forma,
después de la instrucción
también se produce un salto de línea automático. En este ejemplo todo ha ido muy bien, sin
embargo, se tiene que tener especial cuidado si utilizados scanf para leer caracteres.
int main()
{
char a, b, c;
printf( "Introduzca primer caracter: " );
scanf( "%c", &a );
printf( "Introduzca segundo caracter: " );
scanf( "%c", &b );
printf( "Introduzca tercer caracter: " );
scanf( "%c", &c );
printf( "Los valores son: %c, %c, %c ", a, b, c );
return 0;
}
después de asignar el carácter 'f' a la variable a, se produce un salto de línea automático, pero,
en el buffer del teclado también se ha quedado almacenada la secuencia de escape (\n), que es,
precisamente, un carácter. En consecuencia, cuando se ejecuta la instrucción
En pantalla veremos:
y como se puede comprobar en las tablas del ASCII, los números 102, 10 y 104 corresponden a los
caracteres 'f', LF (Salto de Línea) y 'h', respectivamente.
Para resolver este problema, antes de leer un carácter con scanf, hay que vaciar (limpiar) el buffer
del teclado. Para ello, se utiliza la función fflush.
#include <stdio.h>
int main()
{
char a, b, c;
return 0;
}
La primera vez que se ejecuta scanf, el buffer del teclado está vacío, por tanto, no es preciso
utilizar fflush, pero sí, en los dos casos posteriores. Obsérvese que, a fflush hay que indicarle
el buffer a limpiar, Standar Input (stdin) en este caso.