8 de Junio de 2024 - ed. hace: 5 meses, 2 semanas
Introducción al lenguaje de programación C, tercera parte. El contenido de este post es una traducción al idioma español de la pagina w3schools.com/c la cual solo se encuentra disponible en inglés
En C, se puede crear, abrir, leer y escribir archivos
declarando un puntero del tipo FILE
, y usando la función fopen()
#include <stdio.h>
FILE *fptr;
fptr = fopen(filename, mode);
FILE
es básicamente un tipo de dato, y se puede crear una variable puntero
para trabajar con fptr
. Por ahora esta linea no es importante. Solo es
necesaria cuando se trabaja con archivos
Para abrir un archivo usa la funcion fopen()
la cual recibe 2 parametros
Parametro | Descripción |
---|---|
filename | El nombre del archivo a abrir (o crear), ej. filename.txt |
mode | Un solo caracter que representa lo que se desea hacer con el archivo, (leer, esribir o anexar) - w : Escribir- a : Anexar- r : Leer |
Para crear se usa el modo w
, dentro de la función fopen()
. Si no existe, se
crea
En este ejemplo se usan rutas relativas
FILE *fptr;
//Crear archivo
fptr = fopen("./files/filename.txt", "w");
//Cerrar el archivo
fclose(fptr);
Se usa w
. Y la función fprintf()
FILE *fptr;
fptr = fopen("./files/filename.txt", "w");
// Escribir texto en el archivo
fprintf(fptr, "Algún texto");
fclose(fptr);
FILE *fptr;
fptr = fopen("./files/filename.txt", "a");
// Escribir texto en el archivo
fprintf(fptr, "\notro texto, en otra linea");
fclose(fptr);
#include <stdio.h>
int main(){
FILE *fptr;
fptr = fopen("./files/filename.txt", "r");
char texto[100];
fgets(texto, 100, fptr);
printf("%s", texto);
fclose(fptr);
return 0;
}
#include <stdio.h>
int main(){
FILE *fptr;
fptr = fopen("./files/filename.txt", "r");
char texto[100];
while(fgets(texto, 100, fptr)){
printf("%s", texto);
}
fclose(fptr);
return 0;
}
Si se intenta abrir para lectura un archivo inexistente, fopen()
retorna NULL
.
Como buena práctica se usa un if
para testear NULL
y se imprime algún texto
informativo cuando el archivo no existe
#include <stdio.h>
int main(){
FILE *fptr;
fptr = fopen("./files/not_exists.txt", "r");
char texto[100];
if(fptr != NULL){
while(fgets(texto, 100, fptr)){
printf("%s", texto);
}
} else {
printf("No fue posible abrir el archivo (existe?)\n");
}
fclose(fptr);
return 0;
}