Latest web development tutorials

documento de alfabetización C

capítulo anterior explicamos el procesamiento del lenguaje C estándar de dispositivos de entrada y de salida. En este capítulo vamos a introducir el programador C cómo crear, abrir, cerrar, texto o archivos binarios.

Un archivo, si se trata de texto o datos binarios, son representativos de una serie de bytes. la función del lenguaje C no sólo proporciona acceso al nivel superior, sino que también proporciona el subyacente (OS) llamado para procesar los archivos almacenados en el dispositivo. En este capítulo se explicará la importancia de la llamada, el administrador de archivos.

Abrir el archivo

Puede utilizar la funciónfopen () para crear un nuevo documento o abrir un archivo existente, la llamada inicializar un objeto de tipo de archivo,tipo dearchivocontiene toda la información necesaria para controlar el flujo. Aquí es el prototipo de esta convocatoria:

FILE *fopen( const char * filename, const char * mode );

En este caso, el nombre de archivo es una cadena que se utiliza para nombrar el modo de acceso de valor de modode archivos puede ser uno de los siguientes valores:

模式描述
r打开一个已有的文本文件,允许读取文件。
w打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。
a打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+打开一个文本文件,允许读写文件。
w+打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

Si el proceso es un archivo binario, es necesario utilizar el siguiente modo de acceso de modo de acceso para sustituir a los anteriores:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

Cierre el archivo

;

Para cerrar un archivo, utilice la función fclose (). prototipo de la función es la siguiente:

 int fclose( FILE *fp );

Si tiene éxito, cerrar elarchivo, la función fclose () devuelve cero, se produce un error al cerrar el archivo, la función devuelve EOF.Esta función es, de hecho, va a borrar los datos en la memoria intermedia, cierre el archivo, y libera toda la memoria para el archivo. EOF es una constante definida en el archivo de cabecerastdio.h en.

biblioteca estándar de C proporciona una variedad de funciones para presionar un personaje o en forma de cadena de longitud fija para leer y escribir archivos.

Escribir en el archivo

He aquí los caracteres de escritura en una corriente de la función más simple:

int fputc( int c, FILE *fp );

fputc función ()escribe el carácter c en el valor de los puntos parámetro fp con la corriente de salida. Si la escritura tiene éxito, devuelve el carácter escrito, si se produce un error, devuelveEOF.Puede utilizar las siguientes funciones a una cadena terminada en cero que se escribe en la secuencia:

int fputs( const char *s, FILE *fp );

fputs de función ()escribe la cadenasen FP puntos para el flujo de salida. Si la escritura se realiza correctamente, se devuelve un valor no negativo si se produce un error, devuelveEOF.También puede utilizarint fprintf (const FILE * fp, char * formato, ...) la función para escribir una cadena que se escriben en un archivo.Prueba los siguientes ejemplos:

Nota: Asegúrese deque tiene disponibleeldirectorio/ tmp,si este directorio no existe, tendrá que crear el directorio de su equipo.

#include <stdio.h>

main()
{
   FILE *fp;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

Cuando el código se compila y ejecuta, se crea en el directorio / tmp, un nuevo archivotest.txt, y el uso de dos funciones diferentes escritos dos líneas.Vamos a leer el archivo.

Leer el archivo

Esta es la función más sencilla de leer un solo carácter de un archivo:

int fgetc( FILE * fp );

fgetc () la función lee un carácter del archivo de entrada apuntado por fp.El valor de retorno es una lectura de caracteres, si se produce un error regresaEOF.La siguiente función le permite leer una cadena de la corriente:

char *fgets( char *buf, int n, FILE *fp );

fgets () la función lee n del flujo de entrada apuntado por fp - el carácter.Se leerá la cadena copiada en el bufferbuf, y, finalmente, se anexa un carácter nulopara terminar la cadena.

Si la función antes de leer el último carácter se encontró con un carácter de nueva línea '\ n' al final del archivo o EOF, sólo para volver a leer los caracteres, incluidos los de nueva línea. También puede utilizarint fscanf (FILE *, const fp char * formato, ...) función para leer una cadena de un archivo, pero en la cara del primer carácter de espacio, se va a dejar de leer.

#include <stdio.h>

main()
{
   FILE *fp;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);

}

Cuando el código se compila y ejecuta, se leerá archivos creados en una parte, produce los siguientes resultados:

1 : This
2: is testing for fprintf...

3: This is testing for fputs...

En primer lugar, el método fscanf () sólo leer esto,ya que se encuentra con un espacio en la parte posterior. A continuación, llamar a losfgets () para leer el resto, hasta el final de la línea.Por último, llame afgets () leer en su totalidad la segunda línea.

Funciones binarias E / S

Las siguientes dos funciones para las entradas y salidas binarias:

size_t fread(void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);
              
size_t fwrite(const void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);

Estas dos funciones se utilizan para leer y escribir bloque de memoria - normalmente una matriz o una estructura.