Resumen en lenguaje C de los puntos de conocimiento de operaciones relacionados comunes de los archivos

Tabla de contenido

 

1. Nombre de archivo

En segundo lugar, la ruta del archivo

2.1 Camino absoluto

2.2 Ruta relativa

2.3 Asuntos que requieren atención

3. Por qué utilizar archivos

Cuarto, la clasificación de documentos.

Cinco, cómo operar el archivo en el código.

5.1 Abrir archivo fopen

5.2 Leer y escribir archivos

5.3 Cerrar el archivo fclose

Seis, el fin de la sentencia de expediente

Siete, búfer de archivos

Ocho, suplemento


1. Nombre de archivo

En la computadora, cada archivo tiene su propio nombre de archivo. La forma es como: "sky.jpeg". Generalmente, el nombre del archivo se divide en dos partes: ①nombre de cielo②.jpeg extensión

Uso de la extensión: ① para distinguir los tipos de archivos ② qué programa utiliza el sistema operativo de alta velocidad para abrir el archivo de forma predeterminada, con más precisión, en el sistema, la "ruta" del archivo se utiliza como identificación del archivo.

En segundo lugar, la ruta del archivo

2.1 Camino absoluto

Forma: D: \ programa \ ha \ haha.exe

2.2 Ruta relativa

Necesitamos proporcionar un "sistema de referencia" para indicarnos desde qué directorio encontrar este archivo.

Si se utiliza D: \ program \ ha como sistema de referencia, entonces. \ Haha.exe es la ruta relativa

2.3 Asuntos que requieren atención

\ Se llama barra invertida / se llama barra 

También es posible D: /program/ha/haha.exe. En Linux / Mac, solo se admite / como separador.

Es más recomendable usar /.

\ Es fácil de combinar con otros caracteres para escapar, por lo que no se recomienda, como printf ("D: \ program \ test");

3. Por qué utilizar archivos

Debido a la "persistencia", la persistencia es mantener los datos almacenados continuamente, y escribir en un disco / archivo es una solución simple pero más comúnmente utilizada. (Los datos del disco también se perderán, normalmente varios años o décadas)

Cuarto, la clasificación de documentos.

Desde el punto de vista de la programación, los archivos se pueden dividir en dos categorías:

①Archivo de texto 

②Archivo binario

Por ejemplo, para almacenar un entero 10000, puede guardarlo en el disco

Archivo de texto: '1', '0', '0', '0', '0'

Archivo binario: 10 27 00 00

Cómo distinguir: si abre un archivo con el Bloc de notas y descubre que puede entenderlo, es un archivo de texto; de lo contrario, es un archivo binario. (Porque el Bloc de notas se abre según el método de "archivo de texto")

Cinco, cómo operar el archivo en el código.

5.1 Abrir archivo fopen

El primer parámetro es el nombre del archivo y el segundo parámetro indica el método de apertura El archivo de encabezado incluido es: #include <stdio.h>.

Comprensión del segundo parámetro:

1) Operar en "archivos de texto"

   r : lectura, solo lectura; para ingresar datos, abra un archivo de texto existente.

   w : escribir, solo escribir; para generar datos, abra un archivo de texto, si el archivo de texto no existe, cree el archivo.

   a : agregar, agregar escritura; agregar datos al final del archivo de texto

   r + : leer y escribir; para leer y escribir, abra un archivo de texto

  w + : leer y escribir; para leer y escribir, sugiera un nuevo archivo

  a + : leer y escribir; abrir un archivo, leer y escribir al final del archivo

2) Para operaciones con archivos binarios

   rb : solo lectura; para ingresar datos, abra un archivo binario

   wb : solo escritura; para generar datos, abra un archivo binario, si el archivo binario no existe, cree el archivo.

   ab : agregar; agregar datos al final de un archivo binario

   rb +: leer y escribir; abrir un archivo binario para leer y escribir

   wb +: leer y escribir; para leer y escribir, cree un nuevo archivo binario

   ab + : leer y escribir; abrir un archivo binario, leer y escribir al final del archivo

3) Atención

①Si el archivo especificado "w", "wb", "w +", "a +", "wb +", "ab +" no existe, se creará un nuevo archivo y se producirán otros errores;

②Abrir el archivo corresponde a cerrar el archivo, introduciré el cierre del archivo a continuación.

5.2 Leer y escribir archivos

5.2.1 Lectura y escritura secuencial de archivos:

fgetc : función de entrada de caracteres; aplicable a todos los flujos de entrada;

fputc : función de salida de caracteres; aplicable a todos los flujos de salida

fgets : función de entrada de línea de texto; aplicable a todos los flujos de entrada;

fputs : función de salida de línea de texto; aplicable a todos los flujos de salida

fscanf : función de entrada formateada; aplicable a todos los flujos de entrada

fprintf : función de salida formateada; aplicable a todos los flujos de salida

fread : entrada binaria; adecuado para archivos

fwrite : salida binaria; adecuado para archivos

P.ej:

#include<stdio.h>
#include<stdlib.h>

int main()
{
	FILE* pfile;
	pfile = fopen("haha.txt", "w");
	if (pfile != NULL){
		fputs("fopen example", pfile);
		fclose(pfile);
	}
	return 0;
}

Como haha.txt no existe, pero el parámetro de fopen es "w", se creará el archivo y se escribirá "fopen example" en el archivo a través de fputs. Cuando fopen abre el archivo, debemos cerrar el archivo correspondiente a fclose , y finalmente podemos ver la computadora Hay un archivo adicional llamado haha.txt en él, después de abrirlo como se muestra en la siguiente figura:

5.2.2 Lectura y escritura aleatoria de archivos

①fseek: puede entenderse como modificar la posición del "cursor" (cursor)

El primer flujo de parámetros es el puntero de archivo ;

El segundo parámetro de compensación es la compensación , un número positivo indica una compensación positiva y un número negativo indica una compensación negativa;

El origen del tercer parámetro establece el desplazamiento del archivo y puede tomar valores: SEEK_SET (el comienzo del archivo), SEEK_CUR (la posición actual) o SEEK_END (el final del archivo);

 

P.ej:

#include<stdio.h>

int main()
{
	FILE* pfile;
	pfile = fopen("example.txt", "wb");
	fputs("This is an apple.", pfile);
	fseek(pfile, 9, SEEK_SET);
	fputs("sam", pfile);
	fclose(pfile);
	return 0;
}

②ftell : Devuelve el desplazamiento del puntero del archivo con respecto a la posición inicial.

③rewind: permite que la posición del puntero del archivo vuelva a la posición inicial del archivo

5.3 Cerrar el archivo fclose

Como se mencionó anteriormente, la función para cerrar el archivo es fclose, y su prototipo es el siguiente

Seis, el fin de la sentencia de expediente

En el proceso de lectura del archivo, el valor de retorno de la función feof no se puede usar directamente para determinar si el archivo terminó, pero cuando la lectura del archivo finaliza, se juzga si es el final de la falla de lectura o el final de la lectura. el archivo.

6.1 Si la lectura del archivo de texto ha terminado, juzgue si el valor de retorno es EOF (fgetc) o NULL (fgets)

fgetc juzga si es EOF y devuelve -1 EOF EOF al final del archivo

fgets determina si el valor devuelto es NULL y devuelve NULL para leer.

6.2 Juicio del final de la lectura del archivo binario y juzgue si el valor de retorno es menor que el número real que se va a leer

El juicio de que se ha leído el archivo depende de la función que se esté utilizando para la lectura.

Si está utilizando fread, el valor de retorno indica el número de elementos que realmente se leen n, y el tercer parámetro indica el número de elementos que se espera que se lean. Si n <cuenta, se considera terminado, si el archivo no está terminado, n == cuenta debe ser igual.

La comprensión es la siguiente: suponga que el archivo tiene 110 elementos y cada elemento es un carácter (1 byte). Cuando fread lee, count se establece en 20.

La primera vez: n => 20, se leen 20 bytes

Segunda vez: n => 20, leer [20,40) bytes

La tercera vez: n => 20, lee [40,60) bytes

Cuarta vez: n => 20, leer [60,80) bytes

Quinta vez: n => 20, lee [80,100) bytes

Sexta vez: n => 10, leer [100,110) bytes

Siete, búfer de archivos

El propósito es mejorar la eficiencia de lectura y escritura de archivos.

Principio básico: la eficiencia de acceder a la memoria es mucho mayor que la de acceder a la memoria externa.

Ocho, suplemento

1) El llamado "imprimir en consola" se denomina más rigurosamente, escribir datos en "salida estándar", que es un archivo especial en el sistema operativo. Una idea importante en el sistema operativo: "Todo es un archivo". El sistema operativo necesita administrar una gran cantidad de recursos de software y dispositivos de hardware. Para facilitar la administración, el sistema operativo abstrae estas cosas en "archivos".

2) En la biblioteca estándar de C y algunas funciones del sistema, muchas funciones establecerán la información de error en el código de error errno cuando ejecutan errores, y luego la causa del error se puede identificar a través de este código de error. Si el programa es correcto, en este momento errno es 0. Si no es 0, significa que la última operación salió mal.

strerror : convierte el código de error (errno) en la explicación de texto correspondiente

3) Cuando se inicia un programa, se abren tres archivos de forma predeterminada (stdin de entrada estándar, stdout de salida estándar, stderr de error estándar)

Supongo que te gusta

Origin blog.csdn.net/weixin_43939602/article/details/110346727
Recomendado
Clasificación