Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Especialidad: Informtica.
Grupo: 410
Turno: Matutino
INDICE
Manejo de estructuras
Ficheros C++
Libreras C++
Funcin de cadenas
Fuentes
Estructuras
Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos
sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.
Sintaxis
En C/C++ se forma una estructura utilizando la palabra reservada struct, seguida
por un campo etiqueta opcional, y luego una lista de miembros dentro de la
estructura. La etiqueta opcional se utiliza para crear otras variables del tipo
particular de la estructura:
[<tipo> <nombre-variable[,nombre-variable,...]>];
[<tipo> <nombre-variable[,nombre-variable,...]>];
...
} [ <variables de estructura> ] ;
fragmento de codigo:
struct {
int a;
int b;
} p1;
Se declara y define la variable estructurada p1, misma que se compone por los
miembros a y b; ambos del tipo int.
Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis
mostrada en los ejemplos anteriores.
#include <stdio.h>
struct punto{
int x;
int y;
};
struct linea{
punto p1;
punto p2;
};
int main(){
return 0;
int main(){
linea l1;
l1.p1.x=1;
l1.p1.y=1;
l1.p2.x=2;
l1.p2.y=2;
(%d,%d)\n",l1.p1.x,l1.p1.y,l1.p2.x,l1.p2.y);
return 0;
Ficheros
El estndar de C contiene varias funciones para la edicin de ficheros, stas estn definidas
en la cabecera stdio.h y por lo general empiezan con la letra f, haciendo referencia a file.
Adicionalmente se agrega un tipo FILE, el cual se usar como apuntador a la informacin del
fichero. La secuencia que usaremos para realizar operaciones ser la siguiente: _
fopen
Esta funcin sirve para abrir y crear ficheros en disco.
El prototipo correspondiente de fopen es:
Adicionalmente hay tipos utilizando "b" (binary) los cuales no sern mostrados por ahora y que
solo se usan en los sistemas operativos que no pertenecen a la familia de unix.
fclose
Esta funcin sirve para poder cerrar un fichero que se ha abierto.
El prototipo correspondiente de fclose es:
Un valor de retorno cero indica que el fichero ha sido correctamente cerrado, si ha habido
algn error, el valor de retorno es la constante EOF.
Un ejemplo pequeo para abrir y cerrar el archivo llamado fichero.in en modo lectura:
#include <stdio.h>
#include <stdlib.h>
return 0;
}
feof
Esta funcin sirve para determinar si el cursor dentro del archivo encontr el final (end of file).
Existe otra forma de verificar el final del archivo que es comparar el caracter que trae fgetc del
archivo con el macro EOF declarado dentro de stdio.h, pero este mtodo no ofrece la misma
seguridad (en especial al tratar con los archivos "binarios"). La funcin feof siempre devolver
cero (Falso) si no es encontrado EOF en el archivo, de lo contrario regresar un valor distinto
de cero (Verdadero).
El prototipo correspondiente de feof es:
rewind
Literalmente significa "rebobinar", sita el cursor de lectura/escritura al principio del archivo.
El prototipo correspondiente de rewind es:
Lectura
Un archivo generalmente debe verse como un string (una cadena de caracteres) que esta
guardado en el disco duro. Para trabajar con los archivos existen diferentes formas y
diferentes funciones. Las funciones que podramos usar para leer un archivo son:
fgetc
Esta funcin lee un caracter a la vez del archivo que esta siendo sealado con el
puntero *archivo. En caso de que la lectura sea exitosa devuelve el caracter ledo y en caso
de que no lo sea o de encontrar el final del archivo devuelve EOF.
El prototipo correspondiente de fgetc es:
Esta funcin se usa generalmente para recorrer archivos de texto. A manera de ejemplo
vamos a suponer que tenemos un archivo de texto llamado "prueba.txt" en el mismo directorio
en que se encuentra el fuente de nuestro programa. Un pequeo programa que lea ese
archivo ser:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *archivo;
char caracter;
archivo = fopen("prueba.txt","r");
if (archivo == NULL)
{
printf("\nError de apertura del archivo. \n\n");
}
else
{
printf("\nEl contenido del archivo de prueba es \n\n");
while (feof(archivo) == 0)
{
caracter = fgetc(archivo);
printf("%c",caracter);
}
}
fclose(archivo);
return 0;
}
fgets
Esta funcin est diseada para leer cadenas de caracteres. Leer hasta n-1 caracteres o
hasta que lea un cambio de lnea '\n' o un final de archivo EOF. En este ltimo caso, el
carcter de cambio de lnea '\n' tambin es ledo.
El prototipo correspondiente de fgets es:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *archivo;
char caracteres[100];
archivo = fopen("prueba.txt","r");
if (archivo == NULL)
exit(1);
fclose(archivo);
return 0;
}
Este es el mismo ejemplo de antes con la diferencia de que este hace uso de fgets en lugar
de fgetc. La funcin fgets se comporta de la siguiente manera, leer del archivo apuntado por
archivo los caracteres que encuentre y a ponerlos en buffer hasta que lea un caracter menos
que la cantidad de caracteres especificada en tamao o hasta que encuentre el final de una
linea (\n) o hasta que encuentre el final del archivo (EOF). En este ejemplo no vamos a
profundizar mas que para decir que caracteres es un buffer, los pormenores seran explicados
en la seccin de manejo dinmico de memoria.
El beneficio de esta funcin es que se puede obtener una linea completa a la vez. Y resulta
muy til para algunos fines como la construccin de un parser de algn tipo de archivo de
texto.
fread
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
Esta funcin lee un bloque de una "stream" de datos. Efecta la lectura de un arreglo de
elementos "count", cada uno de los cuales tiene un tamao definido por "size". Luego los
guarda en el bloque de memoria especificado por "ptr". El indicador de posicin de la cadena
de caracteres avanza hasta leer la totalidad de bytes. Si esto es exitoso la cantidad de bytes
ledos es (size*count).
PARAMETROS:
ptr : Puntero a un bloque de memoria con un tamao mnimo de (size*count) bytes.
size : Tamao en bytes de cada elemento (de los que voy a leer).
count : Nmero de elementos, los cuales tienen un tamao "size".
stream: Puntero a objetos FILE, que especifica la cadena de entrada.
fscanf
La funcin fscanf funciona igual que scanf en cuanto a parmetros, pero la entrada se toma de
un fichero en lugar del teclado.
El prototipo correspondiente de fscanf es:
#include <stdio.h>
char buffer[100];
fclose ( fp );
return 0;
}
Escritura
As como podemos leer datos desde un fichero, tambin se pueden crear y escribir ficheros
con la informacin que deseamos almacenar, Para trabajar con los archivos existen diferentes
formas y diferentes funciones. Las funciones que podramos usar para escribir dentro de un
archivo son:
Mostramos un ejemplo del uso de fputc en un "fichero.txt", se escribira dentro del fichero
hasta que presionemos la tecla enter.
#include <stdio.h>
char caracter;
fp = fopen ( "fichero.txt", "a+t" ); //parametro para escritura al final y para file tipo texto
fclose ( fp );
return 0;
}
fputs
La funcin fputs escribe una cadena en un fichero. la ejecucin de la misma no aade el
carcter de retorno de lnea ni el carcter nulo final. El valor de retorno es un nmero no
negativo o EOF en caso de error. Los parmetros de entrada son la cadena a escribir y un
puntero a la estructura FILE del fichero donde se realizar la escritura.
El prototipo correspondiente de fputs es:
int fputs(const char *buffer, FILE *archivo)
#include <stdio.h>
fputs( cadena, fp );
fclose ( fp );
return 0;
}
fwrite
Esta funcin est pensada para trabajar con registros de longitud constante y forma pareja
con fread. Es capaz de escribir hacia un fichero uno o varios registros de la misma longitud
almacenados a partir de una direccin de memoria determinada. El valor de retorno es el
nmero de registros escritos, no el nmero de bytes. Los parmetros son: un puntero a la
zona de memoria de donde se obtendrn los datos a escribir, el tamao de cada registro, el
nmero de registros a escribir y un puntero a la estructura FILE del fichero al que se har la
escritura.
El prototipo correspondiente de fwrite es:
Un ejemplo concreto del uso de fwrite con su contraparte fread y usando funciones es:
#include <stdio.h>
fclose ( fp );
return 0;
}
fprintf
La funcin fprintf funciona igual que printf en cuanto a parmetros, pero la salida se dirige a
un archivo en lugar de a la pantalla.
El prototipo correspondiente de fprintf es:
#include <stdio.h>
fprintf(fp, buffer);
fprintf(fp, "%s", "\nEsto es otro texto dentro del fichero.");
fclose ( fp );
return 0;
}
Nombres Descripcin
memcpy copia n bytes entre dos reas de memoria que no deben solaparse
copia n bytes entre dos reas de memoria; al contrario que memcpy las
memmove
reas pueden solaparse
devuelve la posicin del primer carcter de una cadena que no coincide con
strspn
ninguno de los caracteres de otra cadena dada
devuelve la posicin del primer carcter que coincide con alguno de los
strcspn
caracteres de otra cadena dada
encuentra la primera ocurrencia de alguno de los caracteres de una cadena
strpbrk
dada en otra
#include <stdlib.h>
#include <time.h>
#include<iostream>
int main()
int num, c;
srand(time(NULL));
return 0;
Fuentes
http://sopa.dis.ulpgc.es/fso/cpp/intro_c/introc53.htm
http://www.cplusplus.com/forum/beginner/98214/
https://www.slideshare.net/Kevin2811/librerias-enlenguajec
http://www.nebrija.es/~abustind/Informatica/MetodologiaI/Funciones_cadena.pdf