A free template from Joomlashack

A free template from Joomlashack




Descargar todos los ejemplos c de esta web + el manual c
Moviles TDT, relojes movil, boligrafo espia y + en la Tienda de electronica

Home
Ficheros PDF Imprimir E-Mail
Calificación del usuario: / 19
MaloBueno 

CAPITULO 9: FICHEROS

FICHEROS. En lugar de hacer la entrada vía teclado y la salida vía terminal, se puede hacer usando ficheros. Para trabajar con ficheros debe seguirse la secuencia siguiente:

1.- Abrir el archivo.

2.- Utilizar el archivo lectura, escritura, ...

3.- Cerrar el archivo. Para trabajar con ficheros se deberá incluir la línea:

#include<stdio.h>Antes de utilizar un fichero, éste debe haber sido declarado.

Para ello: FILE * nombre;       /declarar un fichero*/(*) Relacionado con punteros (punto 6). Corresponde a un puntero a un archivo  

APERTURA DE UN FICHERO: FOPEN ( );. Fopen trabaja básicamente con 2 parámetros de entrada:El nombre del fichero que se va a escribir.El uso a que se va a destinar el fichero:

r          Lectura.

w         Escritura. (si en el fichero existe algún dato se BORRARÁ)

a          Añadir  Ejemplos:#include>stdio.h>FILE * datosdatos = fopen (“nombres.dat”,”r”);

Nombre del archivo en el programa. Utilizado por el programa    
Nombre que tiene el archivo en el disco. Utilizado por el sistema operativo

 Otras formas de abrir el archivo:datos = fopen (“nombres.dat”, “w”);

datos = fopen (“nombres.dat”, “a”);

datos = fopen (“nombres.dat”, “ra”); 

Si fopen ( ) no consigue abrir el fichero solicitado, devuelve un valor nulo que se ha definido en stdio.h con el nombre NULL.

¿Por qué no se puede abrir un fichero?.

Por ejemplo, si no existe. Como posteriormente se verá, se suele realizar algún control al abrir el fichero: 

if (datos = fopen (“nombres.dat”,”r”) !=NULL) 

Otros posibles errores por los que no se puede abrir un fichero:Disco lleno.Nombre incorrecto.Directorio no válido.Etc.  

CIERRE DE UN FICHERO: FCLOSE ( );. Se puede cerrar el fichero con fclose ( ).

Para nuestro ejemplo: fclose (datos);

Para realizar un programa más preciso, con control de errores, se puede utilizar el valor que retorna fclose ( ) para informar si el fichero se ha cerrado normalmente:cierre satisfactorio.

-1        error al cerrar el fichero. Con un if podríamos controlar si el cierre es satisfactorio o no.  

ENTRADA Y SALIDA DE FICHEROS: 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.

Ejemplo: leer un carácter del archivo nombres.dat. 

#include<stdio.h>

char letra;

FILE *datos;datos = fopen (“nombres.dat”,”r”);

letra = getc (datos);fclose (datos); 

Ejemplo: escritura de la letra “X” en el archivo nombres.dat. 

#include<stdio.h>

char letra = ‘X’;FILE *datos;

datos = fopen (“nombres.dat”,”w”);

putc (letra,datos);

fclose (datos); 

ENTRADA Y SALIDA DE LINEAS: FPRINTF ( ); Y FSCANF ( );.

Se comportan exactamente igual que printf ( ); y scanf ( );, excepto que requieren un argumento adicional que corresponde al fichero deseado.La sintaxis es:

 fprintf (fichero, control, arg1, arg2, ...);

fscanf (fichero, control, arg1, arg2, ...); 

Ejemplo: 

 #include<stdio.h>FILE *fich;Int edad; 
 

Fich = fopen (“pedro”,”r”);

Fscanf (fich, “%d”,&edad);

Fclose(fich);

/*modo lectura*//*lectura del fichero*/
 

Fich = fopen (“datos”,”a”);

Fprintf (fich, “Pedro tiene %d años.\n”edad);

Fclose (fich);

/*modo añadir*//*escribir en fichero*/

 3.7.- ENTRADA Y SALIDA DE ENTEROS DE 2 BYTES: GETW ( ); Y PUTW ( );. 

Estas funciones son soportadas por la mayoría de los compiladores.Se utilizan para leer y escribir enteros de 2 bytes en o desde fichero en disco.Funcionan de manera similar que getc ( ) y putc ( ).

Ejemplo:Sean las declaraciones:FILE * fp;

int cuenta; Se puede hacer:cuenta = getw (fp);

 /*lectura del fichero*/ 

putw (cuenta,fp);

/*escritura en el fichero*/ 

ACCESO ALEATORIO: FSEEK ( );. 

La función fseek ( );

permite moverse a un byte determinado del fichero abierto por fopen ( );.

La sintaxis es: fseek (fichero, offset, modo);

Indica el fichero sobre el que se aplica el movimiento.     El offset se mide desde: 0: el comienzo del fichero1: posición actual2: fin de fichero
       
      

Indica la cantidad de bytes a desplazar.Puede utilizarse el nombre de una variable definida como long.Pueden ser: Positivo (movimiento adelante)Negativo (movimiento atrás)

fseek ( );

devuelve un valor para que el programa pueda controlar el correcto funcionamiento. Este valor puede ser:0: Todo ha funcionado correctamente-1: En otro caso.

Ejemplo:       

Para posicionarse al comienzo del fichero: 

fseek (fich, 0L, 0); 

Para posicionarse al final del fichero:fseek (fich, 0L, 2); 

Para posicionarse en otro punto.

Ejemplo byte 210.fseek (fich, 210L, 0); 

Utilizando una variable.long vari = 210L;fseek (fich, vari, 0); 

Se puede utilizar autoincrementando o autodecrementando:fseek (fich, vari++, 0);fseek (fich, vari- -, 0);

 FICHEROS: STDIN, STDOUT, STDERR. Al comenzar la ejecución de un programa se abren 3 archivos automáticamente.

Estos son: stdin: corresponde a la entrada estándar          ® 

TECLADO.stdout:            corresponde con la salida estándar.       ®

PANTALLA.Stderr:            corresponden con el error estándar         ®

PANTALLA.                      Estos nombres se pueden utilizar para hacer E/S por el teclado / pantalla.Al iniciarse el programa estos ficheros se cierran automáticamente. 

Comentarios
Añadir nuevo Buscar
Anónimo   |201.223.53.xxx |2009-11-18 16:33:17
mario alberto molina beltra  - programa   |189.254.74.xxx |2009-11-26 00:20:53
hola
reciban urdial saludo
estas lineas son para ver si me podrin ayudar
poararealizar un programa para una de mis materias es el proyecto final de mi
curso en este trimestre el programa debe de ser el sobre el prestamo de usb y
debe de manejar menu alta baja cambio desplegado ordenador buscar cargar salvar

y debe de usar estructuras, arreglosd, apuntadores, funciones y archivos espero
y puedan ayudarme de antemano gracias.
vanessa  - este es el tipo de ejemplos que quiero lo basico   |201.170.223.xxx |2009-12-13 22:27:08
#include
#include
main()
{
float a,b;
printf("este programa calcula la
suma de dos numeros");
printf("escribe un
numero:");
scanf("%f",&a);
printf(&# 34;escribe otro
numero:");
scanf("%f",&b);
printf(&# 34;el resultado
es:%f",(a+b));
printf("/+");
getch() ;
}
paty jimen  - ayyyyyudaaaaaaaaaa   |190.106.14.xxx |2010-04-27 19:52:34
hola necesito que me ayuden
quiero un programa en c++ que permita introducir
datos de una encuesta....que los ordene en forma alfabetica deacuerdo a los
apellidos que me imprima cuantos varones y mujeres hay y que me permita
modificarlos.....
grcias..........
diana miranda   |201.161.60.xxx |2010-05-17 14:22:51
ola necesito que me ayuden a hacer un programa que al introducir dos numeros se
ordenen de mayor a menor
por favor
ººcHëÔºº  - ¡Ayuda por favor!   |201.161.60.xxx |2010-05-17 14:25:53
Hola que tal, cómo les va, espero que vian, oigan en mi escuela me han pedido
hacer un programa en tur c, que trata de ordenar tres números de mayor a menor,
ya intente con if y elce pero de plano solo lo s coloca pero no me los ordena
como yo quiero, hasta eso me ordena al mayor y el menor pero el medio me lo pone
= que el mayor o = que el menor, me pueden aconcejar porfavor? gracias.
maquina  - Anonimo   |67.142.130.xxx |2010-05-20 02:03:50
hola
no le entiendo
me ayudan

en los arreglos bidimensionales en
turbo c
por favor gracias
gracias...
Borja  - LECTURA FICHERO   |80.26.15.xxx |2010-05-20 11:17:15
Hola alguien me ayuda con este programa;
Escribe una función con el siguiente
prototipo:
int contar_caracteres (char *fichero, char car, int *p);
La función
debe contar el número de veces que el carácter car aparece en el archivo cuyo
nombre
está contenido en la cadena fichero. La función tiene que dejar este
resultado en la variable de
tipo int a la que apunta el tercer argumento, es
decir, p.
La función debe devolver:
· 1 si se pudo abrir el archivo
correctamente
· 0 si no se pudo abrir el archivo.
Comprueba que la función es
correcta llamándola desde main. La función main debe hacer lo
siguiente:
· Pedir
el nombre del archivo
· Pedir el carácter que se desea buscar
· Escribir en la
pantalla el número de veces que aparece el carácter en el archivo
diana miranda  - ayuda   |201.161.60.xxx |2010-05-20 15:31:38
me puede ayudar :

elaborar un programa en T.C
que permita introducir loz

sigientes
datod :
matricula del alumno : caracter
nombre del alumno :
caracter
nivel del estudio :carcter
numero de semestre : numerico
carrera
: caracter
grupo: caracter
karla (: necesitOOO de su ayud  - ayudaa urgee si no me repruebann   |187.146.66.xxx |2010-05-26 18:37:43



me pueden ayudar con un programa en c++ que lleve los siguientes
datos
la pantalla de
-inventario-
*altas mercancia:_______________
*Baja
mercancia:_________________
*Modificaciones:_____ ___________
*Lista
producto:_________________




siguiente pantalla

-Control del
cliente-

*Alta del cliente:_______________
*Baja del
cliente:_______________
*Modificacion del
cliente:______________
*Credito:_________________ ___




siguiente
pantalla

-Alta cliente-

*Nombre:________________________
*Ape
llido:_____________________
*Direccion:__________
______
*Telefono:___________________
*ID:_______ ___________



siguiente
pantalla

-Baja cliente-
*Nombre:__________________________
*Ape
llido:_______________________
*ID:_______________
____________
*BorrAR:____________________________ _


SIGUIENTE
PANTALLA

-Eleccion-
*Nombre
perfume:_________________
*Cant...
pedro  - necesito solucionar esto   |213.176.161.xxx |2010-05-28 07:54:52
Escriu un programa C anomenat el_teu_primer_cognom.cpp que analitzi l
pedro  - algien lo puede solucionar?   |213.176.161.xxx |2010-05-28 07:56:59
Escriu un programa C anomenat el_teu_primer_cognom.cpp que analitzi l
mirnita  - vectores   |186.25.155.xxx |2010-07-07 17:27:02
hola necesito dos programas q lleve arreglos unidimensionales con la libreria
stdio.h x fa para dentro de dos horas
dios  - respuesta   |201.215.4.xxx |2010-07-13 20:45:08
mirnita la patudita
Escribir comentario
Nombre:
Email:
 
Título:
 
:D:):(:0:shock::confused:8):lol::x:P:oops::cry:
:evil::twisted::roll::wink::!::?::idea::arrow:
 
Por favor introduce el código anti-spam que puedes leer en la imagen.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
< Anterior

Últimos códigos

    

+ Visitados

    
Joomla Templates by Joomlashack