Crear y escribir en archivos de C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a crear un nuevo archivo en el lenguaje de programación C y escribir datos en él. El tipo de datos FILE se utiliza para representar un archivo en C, y la función fopen() se utiliza para abrir un archivo para lectura, escritura o adjuntar. Una vez que se abre un archivo, se pueden escribir datos en él utilizando la función fprintf(), y la función fclose() se utiliza para cerrar el archivo después de escribir los datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/PointersandMemoryGroup(["Pointers and Memory"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/data_types("Data Types") c/PointersandMemoryGroup -.-> c/pointers("Pointers") c/FileHandlingGroup -.-> c/write_to_files("Write To Files") c/FileHandlingGroup -.-> c/create_files("Create Files") c/FileHandlingGroup -.-> c/read_files("Read Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/data_types -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/pointers -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/write_to_files -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/create_files -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/read_files -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/user_input -.-> lab-123319{{"Crear y escribir en archivos de C"}} c/output -.-> lab-123319{{"Crear y escribir en archivos de C"}} end

Crear un nuevo programa C utilizando la terminal

Abra la terminal y cree un nuevo programa C llamado main.c en el directorio ~/project/ utilizando el comando:

nano ~/project/main.c

Incluir los archivos de encabezado necesarios

En el archivo main.c, incluya los archivos de encabezado necesarios:

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

Definir variables y punteros

Defina variables y un puntero del tipo FILE para almacenar el archivo y su contenido:

FILE *fptr;
char name[20];
int age;
float salary;

Abrir un archivo para escritura

Abra un archivo para escritura utilizando la función fopen(). Si el archivo no existe, se creará. De lo contrario, su contenido se sobrescribirá:

fptr = fopen("emp.txt", "w");
if (fptr == NULL)
{
    printf("File does not exist.\n");
    return 1;
}

Escribir datos en el archivo

Pida al usuario que ingrese el nombre, la edad y el salario del empleado, y guárdelos en el archivo utilizando la función fprintf():

printf("Enter the name:\n");
scanf("%s", name);
fprintf(fptr, "Name  = %s\n", name);

printf("Enter the age:\n");
scanf("%d", &age);
fprintf(fptr, "Age  = %d\n", age);

printf("Enter the salary:\n");
scanf("%f", &salary);
fprintf(fptr, "Salary  = %.2f\n", salary);

Cerrar el archivo

Cierre el archivo utilizando la función fclose():

fclose(fptr);

Completar el código

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

int main() {
    FILE *fptr;
    char name[20];
    int age;
    float salary;

    // abrir para escritura
    fptr = fopen("emp.txt", "w");
    if (fptr == NULL) {
        printf("File does not exist.\n");
        return 1;
    }

    printf("Enter the name:\n");
    scanf("%s", name);
    fprintf(fptr, "Name  = %s\n", name);

    printf("Enter the age:\n");
    scanf("%d", &age);
    fprintf(fptr, "Age  = %d\n", age);

    printf("Enter the salary:\n");
    scanf("%f", &salary);
    fprintf(fptr, "Salary  = %.2f\n", salary);

    fclose(fptr);
    return 0;
}

Resumen

En este laboratorio, has aprendido cómo crear un nuevo archivo en el lenguaje de programación C y escribir datos en él utilizando las funciones FILE, fopen(), fprintf() y fclose(). Recuerda siempre cerrar el archivo después de escribir datos en él para evitar la pérdida de datos.