Вы находитесь на странице: 1из 3

UNIVERSIDAD TECNOLGICA LA SALLE

ULSA-LEN
LABORATORIO: ARCHIVOS DE TEXTO EN C
Objetivo de la prctica:
Aprender a crear programas guardando la informacin en un archivo de texto.
ARCHIVOS DE TEXTO EN C
En lugar de hacer la entrada va teclado y la salida va pantalla, se puede hacer usando
archivos de datos en c. Para trabajar con archivos debe seguirse la secuencia siguiente:
1. Establecer un rea de memoria temporal escribiendo: FILE *ptvar;
2. Abrir el archivo mediante la funcin fopen de la siguiente manera:
ptvar= fopen(nombre-archivo, modo-apertura);
El modo de apertura puede ser:
r abre un fichero para lectura. Si el fichero no existe devuelve error.
w abre un fichero para escritura. Si el fichero no existe se crea, si el fichero existe
se destruye y se crea uno nuevo.
a abre un fichero para aadir datos al final del mismo. Si no existe se crea.
+ smbolo utilizado para abrir el fichero para lectura y escritura.
Si fopen ( ) no consigue abrir el fichero solicitado, devuelve 0 (valor nulo NULL)
Por qu no se puede abrir un fichero?
Por ejemplo, si no existe. Disco lleno. Nombre incorrecto. Directorio no vlido. Etc.
Es recomendable realizar algn control al abrir el archivo, por ejemplo:
if (ptvar = fopen("ejemplo.dat", "r")!= 0)
3. Lectura y escritura de caracteres
Para leer y escribir ficheros carcter a carcter, utilizamos la funcin getc () y putc().
Las funciones getc ( ) y putc ( ) se comportan de forma semejante a getchar() y
putchar(). Con getc ( ) y putc ( ) se debe indicar el nombre del fichero
Lectura y escritura de cadenas de caracteres (lneas)
Leer o escribir cadenas de caracteres resulta tan sencillo como leer y escribir
caracteres. En este caso se deben utilizar las funciones:
fputs () Tiene los siguientes parmetros:
El array de caracteres que queremos escribir. Se escribirn secuencialmente
todos los caracteres hasta que se encuentre un fin de cadena \0
La variable puntero del tipo FILE que creamos
fgets () Tiene los siguientes parmetros:
Un array de caracteres en el que se meter la lnea leda del fichero. Este
array debe tener tamao suficiente para la lnea o tendremos problemas.
Tamao del array de caracteres. Si la lnea es ms larga, slo se leeran n
caracteres, para no desbordar el array. Si la lnea tiene menos caracteres, se
meteran en el array y se pondra un fin de cadena (un \0) al final.
La variable puntero del tipo FILE que creamos
Entrada y salida con formato: fprintf ( ); y fscanf ( ); Se comportan exactamente igual
que printf (); y scanf (); excepto que requieren un argumento adicional que corresponde
al fichero deseado. La idea de fscanf es que como parmetro se le pasa el formato de
lo que se quiere leer, y esta se encarga de buscarlo en el fichero y leerlo. Los
parmetros de esta funcin son: fscanf (var-puntero, formato, variable)
La variabe puntero del tipo FILE, Formato de lo que hay en el fichero (nmeros, cadena
de caracteres, etc) y el nombre de la variable donde se ira guardando lo que se vaya
leyendo del fichero.
4. Finalmente debemos cerrar nuestro archivo con la funcion fclose. Ejemplo:
fclose(ptvar);

Lenguaje de Programacin II
Docente: Ing. Carolina V. Robelo J.

UNIVERSIDAD TECNOLGICA LA SALLE


ULSA-LEN

Comprobacin de fin de fichero: feof


Para leer desde un archivo, lo podemos hacer creando un bucle while, la lectura se realiza
hasta que se encuentre el final del fichero. La deteccin del final del fichero se puede llevar a
cabo de dos formas:
Con la funcin feof
Esta funcin comprueba si se ha llegado al final del archivo o fichero, en cuyo caso
devuelve un valor distinto de 0. Si no se ha llegado al final de fichero devuelve un
cero. Por eso se puede usar del siguiente modo:
while(feof(fichero) == 0)

equivalentes while(!feof(fichero))

Comprobando si el valor del caracter es EOF (ltimo caracter de cualquier archivo).


Consiste en comprobar si el carcter ledo es el de fin de fichero EOF
while ( letra != EOF )

Lenguaje de Programacin II
Docente: Ing. Carolina V. Robelo J.

UNIVERSIDAD TECNOLGICA LA SALLE


ULSA-LEN
GUIA DE EJERCICIOS
1. Realizar conversin de crdobas a dlares, guardando los datos de entradas en un archivo
llamado cordobas.txt ubicado en el directorio c:\\ y el resultado de la conversin
almacenarlo en otro archivo llamado dlares.txt
2. Abrir un archivo que contiene el nombre de un alumno y su nota correspondiente a Leng.
De Programacion II. Luego crear un archivo de salida y escribir estos datos (pero en orden
invertido). El archivo de entrada pueden crearlo con un editor de texto.
Archivo de entrada: entrada.txt
Armando 100
Archivo de salida: salida.txt
100 Armando

3. Extender el ejercicio anterior para que sea capaz de leer y escribir mltiples pares de
nombres y notas. Sugerencia: Crear un ciclo y chequear cuando la rutina fscanf retorna
EOF.
4. Programa que permita crear un archivo de texto llamado PRUEBA.TXT mediante la
escritura de caracteres, hasta que el carcter introducido sea 0. A continuacin mostrar el
contenido del fichero por pantalla.
5. Crear un fichero de texto llamado SALIDA.TXT a partir del archivo creado en el ejercicio
anterior, copiando carcter a carcter los elementos del archivo PRUEBA.TXT. Hacerlo
diseando previamente una funcin a la que se le pasen los dos archivos.
6. Programa que permita contar el nmero de caracteres de un archivo de texto ya creado,
mostrando en pantalla aquellos que coincidan con el carcter 'a'. Deber hacer una copia
del archivo en otro, pero sustituyendo ese carcter por el carcter *. Los nombres de los
dos archivos se pasarn como parmetros en la lnea de comandos.
7. Crear una estructura para almacenar los datos de un alumno (nombre, edad, curso y nota).
Presentar Menu con las opciones de crear archivo, insertar datos, ver datos, buscar datos,
editar y borrar datos existentes.
8. Programa que abre un fichero de texto cuyo nombre se introduce por teclado, y permite
aadirle cadenas de caracteres hasta que la cadena introducida sea "FIN".
9. Programa que cuente el nmero de palabras, de lneas y de caracteres de un fichero de
texto cuyo nombre se da como parmetro.
10. Programa que haciendo uso de un fichero de texto existente cuyo nombre se introduce por
teclado, cree otro pero con los caracteres del primero en mayscula. Despus se
renombrar el fichero obtenido con el nombre del primer fichero.
11. Escribir un programa que lea un fichero, indicado como parmetro en la llamada al
programa, hasta encontrar el final del archivo, buscando la palabra que contenga el mayor
nmero de vocales.
12. Crea un archivo de texto llamado ZIPCODE.TXT, disea un programa que pida el nombre
de un estado y devuelva su cdigo postal. El fichero ZIPCODE.TXT es un fichero de texto
con la siguiente estructura: Cada lnea est formada por un cdigo postal de 5 dgitos, un
carcter \t', y el nombre del estado. Ejemplo del contenido del archivo de texto:
33010
70118
70001

FLORIDA
NEW ORLEANS
METAIRIE

13. Escribir un programa llamado buscador que permita buscar palabras en un fichero de texto.
Como resultado se visualizar el nmero de lnea y contenido de la misma, para cada una
de las lneas del fichero que contenga la palabra buscada.
14. Se tiene un fichero tipo texto conteniendo en cada lnea el nombre del alumno y la
calificacin obtenida en lenguaje de programacin 2. Escribir un programa que permita
mostrar la nota de un alumno en base a su nombre.
Lenguaje de Programacin II
Docente: Ing. Carolina V. Robelo J.

Вам также может понравиться