Conceptos básicos de acceso a archivos secuenciales en la programación c
La forma más sencilla que la información de programación C se almacena en un archivo es secuencialmente,
un byte después de la otra. El archivo contiene una larga corriente de datos.Acceso a archivos en C es simplemente otra forma de E / S. En lugar de ir a la pantalla, la entrada o salida entra en un archivo. Un archivo se abre mediante el uso de los fopen () función:
manejar = fopen (nombre de archivo, modo) -
La función fopen () requiere dos argumentos, ambas cadenas. La primera es una Nombre del archivo- la segunda es una modo. La función fopen () devuelve un archivo manejar, que es un puntero utilizado para hacer referencia al archivo. Ese indicador es un tipo de archivo de la variable.
Modo | Archivo Abrir para | Crear archivo? | Notas |
---|---|---|---|
"la" | Al añadir? | Sí | Se suma a la final de un archivo- un archivo existente se crea si itdoesn't existen. |
"A +" | Al añadir y leer | Sí | La información se añade al final del archivo. |
"r" | Leyendo | Sin | Si no existe el archivo, fopen () devuelve un error. |
"r +" | Lectura y escritura | Sin | Si no existe el archivo, se devuelve un error. |
"w" | Escritura | Sí | El archivo existente se sobrescribe si se utiliza el mismo nombre. |
"w +" | La escritura y la lectura | Sí | El archivo existente se sobrescribe. |
los modo es una cadena. Incluso cuando sólo se especifica un carácter, debe ir entre comillas dobles.
Después de que el archivo está abierto, se utiliza el manejar variable para hacer referencia al archivo como leer y escribir. El archivo de E / S de las funciones son similares a su nivel de E / S homólogos, pero con un prefijo f. Para escribir en un archivo, puede utilizar la fprintf (), fputs (), fputchar (), y funciones similares. Lectura de un archivo utiliza los fscanf (), fgets () y funciones similares.
Se cierra el archivo utilizando la función fclose () con el identificador de archivo como argumento.
Cómo escribir texto en un archivo
Escriba Ese archivo muestra el proceso básico de la creación de un nuevo archivo, la escritura de texto a ese archivo, y luego de cerrar el acceso a archivos.
ESCRIBIR QUE ARCHIVO
#include #include int main () {FILE * fh-fh = fopen ("hello.txt", "w") - si (FH == null) {puts ("No se puede abrir el archivo!") - salida (1) -} fprintf (fh, "Mira lo que he hecho! n") - fclose (fh) -Retorno (0) -}
La línea 6 crea el identificador de archivo, fh. Es un puntero. Las tiendas puntero del resultado de la función fopen () desde la línea 8. Se crea el hello.txt archivo usando el modo "w" (escritura). Si el archivo existe, es sobrescrito.
La sentencia if comprueba para confirmar que el archivo se abre correctamente. Si no fue así, el valor de fh es NULL, y se toma la acción apropiada.
La función fprintf () escribe el texto en el archivo en línea 14. El formato es el mismo que para printf (), aunque el identificador de archivo se debe incluir como argumento.
Por último, la línea 15 cierra el archivo utilizando la función fclose (). Esta declaración es un paso necesario para cualquier programación de acceso a archivos.
Ejercicio 1: Copie el código fuente de escribir ese archivo en su editor. Construir y ejecutar el programa.
La salida del programa va a un archivo, por lo que no veo nada aparece cuando se ejecuta. Utilice el explorador de archivos de su ordenador para localizar el archivo y abrirlo. O puede escribir un programa que lea el texto de ese mismo archivo.
¿Cómo leer el texto de un archivo
Las funciones de texto de lectura estándar C se utilizan para leer el texto de un archivo del mismo modo que leen el texto desde el teclado. Para leer el texto un carácter a la vez, utilice la función fgetc ().
LEA QUE ARCHIVO
#include #include int main () {FILE * fh-int ch-fh = fopen ("hello.txt", "r") - si (fh == NULL) {puts ("No se puede abrir el archivo!" ) -exit (1) -} while ((CH = fgetc (fh)) = EOF) putchar (ch) -fclose (fh) -Retorno (0) -!}
Línea 9 en leer ese archivo abre el archivo para hello.txt lectura solamente. El archivo debe existir o de lo contrario se produce un error.
El bucle while en Línea 15 muestra el contenido del archivo un carácter a la vez. La función fgetc () lee un carácter del archivo identificado por mango fh. Ese carácter se almacena en ch variable. El resultado se compara con el Fin de la constante de archivos. Cuando hay un partido, el archivo ha sido leído por completo y el bucle while se detiene. De lo contrario, el personaje que ha leído se visualiza en la línea 16.
Ejercicio 2: Crear un nuevo programa mediante el código fuente se muestra en leer ese archivo. Genere y ejecute.
El programa muestra el contenido del archivo creado por Ejercicio 1- lo contrario, verá el mensaje de error.
Ejercicio 3: Modificar el código fuente del Ejercicio 1 para escribir una segunda cadena en el archivo. Agregue la siguiente instrucción después de la Línea 14:
fputs ("Mi programa C escribieron este archivo. n", fh) -
A diferencia utilizando los puts declaración (), debe especificar un carácter de nueva línea para fputs () de salida. Además, el argumento de identificador de archivo aparece después de la cadena, lo cual es inusual para una función de archivo de lenguaje C.
Las funciones fprintf de dos file-escritura () y fputs () escribir texto en el archivo secuencialmente, uno después del otro carácter. El proceso funciona igual que la escritura de texto en la pantalla, sino que esos personajes se guardan en un archivo en el almacenamiento permanente.
La función fgets () lee una cadena entera de texto desde un archivo. Para que funcione, necesita un buffer de entrada, el número de caracteres a leer, y el identificador de archivo.
Tragando CUERDAS DE TEXTO
#include #include int main tampón () {FILE * fh-char [64] -fh = fopen ("hello.txt", "r") - si (fh == NULL) {puts ("No se puede abrir esa presentar! ") - la salida (1) -} while (fgets (tampón, 64, fh)) printf ("% s ", buffer) -fclose (fh) -Retorno (0) -}
La función fgets () aparece en la línea 15 como la condición del bucle while. Esto se debe a fgets () devuelve un puntero a la cadena que ha leído, y cuando se lee ninguna cadena, se devuelve un NULL. Ese valor se detiene el bucle. De lo contrario, la función printf () en la línea 16 muestra la entrada.
El tamaño del búfer y el tamaño de los caracteres leídos en tragando cadenas de texto son idénticos. Eso es porque el 0 al final de la cadena se lee desde el archivo y no se interpreta como un marcador de fin de archivo.
Ejercicio 4: Escriba el código fuente desde tragando cadenas de texto en su editor. Genere y ejecute.