Red de conocimiento informático - Material del sitio web - Cómo leer y escribir archivos en lenguaje C

Cómo leer y escribir archivos en lenguaje C

Programa de archivos de lectura y escritura en lenguaje C:

#include "stdio.h"

#include

main ()

{

FILE *fp1;//Definir el puntero de flujo de archivo, utilizado para abrir el archivo leído

FILE *fp2;//Definir el puntero de flujo de archivos, utilizado para abrir archivos para operaciones de escritura

char text[1024] //Definir una matriz de cadenas para almacenar caracteres leídos

fp1 = fopen(" d:\ \a.txt","r");//Abre el archivo a.txt en modo de solo lectura

fp2 = fopen("d:\\b.txt","w"); //Abre el archivo a.txt en modo escritura

while(fgets(text,1024,fp1)!=NULL)//Lee el contenido del archivo señalado por fp1 línea por línea en texto

{

puts(text);//Salida a la pantalla

fputs(text,fp2);//Escribe el contenido en el archivo señalado por fp2

}

fclose(fp1);//Cerrar el archivo a.txt, si está abierto hay que cerrarlo

fclose(fp2) ;//Cerrar el archivo b.txt

}

Información ampliada:

Resumen de las operaciones de lectura y escritura de archivos en lenguaje C

1. Lectura y escritura de archivos no estándar sin almacenamiento en búfer

1. Abrir y cerrar archivos

La función de open() es abrir un archivo y su formato de llamada es: int open(char *filename, int access); Esta función significa abrir el archivo llamado nombre de archivo de acuerdo con los requisitos de acceso. El valor de retorno es el descriptor de archivo. El acceso tiene dos partes: modo básico y modificador. "(" o "). Puede haber varios modificadores, pero solo puede haber un modo básico.

Regulaciones de acceso

¿O_RDONLY de solo lectura?

El puntero del archivo O_APPEND apunta al final

O_WRONLY de solo escritura

O_CREAT crea el archivo si no existe, y los atributos se basan en atributos del modo básico

O_RDWR lectura y escritura

O_BINARY abre un archivo binario

O_TEXT abre un archivo de texto

La función open() se abre con éxito y el valor de retorno es el valor del descriptor del archivo (valor no negativo); de lo contrario, se devuelve -1. La función de close() es cerrar el archivo abierto por la función open(). Su formato de llamada es: int close(int handle); ?

2. ¿Funciones de lectura y escritura?

int read(int handle, void *buf, int count);

La función read() comienza desde manejar (descriptor de archivo), leer el recuento de bytes y colocarlos en el búfer señalado por buf. El valor de retorno es el número real de bytes leídos. Devolver -1 indica un error. Devolver 0 indica el final del archivo. ?

El formato de llamada de la función write() es: int write(int handle, void *buf, int count) la función write() escribe el recuento de bytes desde el búfer al que apunta buf para manejar); En el archivo conectado, el valor de retorno es el número de bytes realmente escritos.

3. Función de posicionamiento aleatorio

El formato de llamada de la función lseek() es: int lseek(int handle, long offset, int fromwhere);

Esta función localiza el puntero de ubicación del archivo conectado al identificador. La función y el uso son los mismos que los de la función fseek(). El formato de llamada de la función tell() es: long tell(int handle); esta función devuelve el puntero de posición actual del archivo conectado al handle. La función y el uso son los mismos que ftell()

2. Lectura de archivos estándar Escribir

1. Función de apertura de archivos fopen()

La operación de apertura de archivos significa que se asignará un área de estructura de ARCHIVO en la memoria para el archivo especificado por El usuario y el puntero de la estructura se devolverán al programa de usuario. El programa de usuario puede utilizar este puntero de ARCHIVO para acceder al archivo especificado en el futuro.

Cuando se utiliza la función de apertura, se debe proporcionar el nombre del archivo y el modo de operación del archivo (lectura, escritura o lectura-escritura). Si el nombre del archivo no existe, significa crearlo (solo para escritura). archivos, se produce un error al leer un archivo) y apunta el puntero del archivo al principio del archivo. Si ya existe un archivo con el mismo nombre, elimínelo. Si no hay ningún archivo con el mismo nombre, cree el archivo y apunte el puntero del archivo al principio del archivo.

fopen(char *filename,char *type);?

Donde *filename es el puntero del nombre del archivo que se va a abrir, que generalmente está representado por el nombre del archivo adjunto entre comillas dobles, también puede utilizar nombres de ruta delimitados por doble barra invertida.

El parámetro *type indica el método de operación para abrir el archivo. Los modos de operación disponibles son los siguientes:

Se abre "r", solo lectura; se abre "w", el puntero del archivo apunta al principio, se abre "a"; final del archivo, y el archivo está en el archivo existente Agregar; "rb" abre un archivo binario para lectura solamente; "wb" abre un archivo binario para escritura solamente; >

"r+" lee/escribe "w+" crea un nuevo archivo de texto en modo lectura/escritura; "a+" abre un archivo en modo lectura/escritura para agregar "rb+" abre un archivo binario en modo lectura/escritura; ; "wb+" crea un nuevo archivo binario en modo lectura/escritura;

"ab+" abre un archivo binario en modo lectura/escritura para agregarlo cuando se usa fopen() para abrir exitosamente un archivo; La función devolverá un puntero ARCHIVO o un puntero NULO si falla la apertura del archivo.