0Pricing
C++ Academy · Lección

Escritura de archivos con ofstream

Escriba archivos de salida

Escritura de archivos con ofstream es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué es ofstream?

std::ofstream (flujo de salida de archivo) escribe datos en archivos. Funciona como std::cout, pero su destino es un archivo.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("hello.txt");
    out << "Hello, file!\n";
    std::cout << "wrote file\n";
    return 0;
}

Escribir texto

Use el operador << para escribir strings y números, exactamente igual que al imprimir en la consola.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("report.txt");
    out << "Score: " << 95 << '\n';
    out << "Grade: A\n";
    std::cout << "done\n";
    return 0;
}

Truncado predeterminado

Abrir un archivo existente con ofstream borra su contenido anterior. Cada ejecución comienza desde cero.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("t.txt") << "old content\n";
    std::ofstream out("t.txt");
    out << "new content\n";
    std::ifstream in("t.txt");
    std::string line; std::getline(in, line);
    std::cout << line << '\n';
    return 0;
}

Anexar con el modo app

Pase std::ios::app para conservar el contenido existente y añadir datos nuevos al final.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("log.txt") << "line1\n";
    std::ofstream out("log.txt", std::ios::app);
    out << "line2\n";
    out.close();
    std::ifstream in("log.txt");
    std::string l; int n = 0;
    while (std::getline(in, l)) ++n;
    std::cout << n << " lines\n";
    return 0;
}

Comprobar que la escritura tuvo éxito

Compruebe el flujo después de abrirlo. Si se encuentra en un estado de error, la escritura fallará silenciosamente.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("ok.txt");
    if (!out) {
        std::cout << "failed to open\n";
        return 1;
    }
    out << "safe write\n";
    std::cout << "write ok\n";
    return 0;
}

Escribir números y aplicar formato

Los manipuladores de E/S, como std::fixed y std::setprecision, también se aplican a los flujos de archivos.

#include <iostream>
#include <fstream>
#include <iomanip>

int main() {
    std::ofstream out("pi.txt");
    out << std::fixed << std::setprecision(3) << 3.14159 << '\n';
    out.close();
    std::ifstream in("pi.txt");
    std::string s; in >> s;
    std::cout << s << '\n';
    return 0;
}

Escribir un bucle de datos

Escriba muchas líneas mediante un bucle. En cada iteración se envía un registro al archivo.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("squares.txt");
    for (int i = 1; i <= 5; ++i) out << i << ' ' << i * i << '\n';
    out.close();
    std::cout << "wrote 5 rows\n";
    return 0;
}

Vaciar el búfer

La salida se almacena en un búfer. std::flush o std::endl fuerza el envío inmediato del búfer al disco; cerrar el archivo también lo vacía.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("flush.txt");
    out << "important" << std::flush;
    std::cout << "flushed to disk\n";
    return 0;
}

endl frente a salto de línea

'\n' solo añade un salto de línea. std::endl añade un salto de línea y vacía el búfer, por lo que es más lento en bucles estrechos.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("nl.txt");
    out << "fast\n";          // newline only
    out << "slow" << std::endl; // newline + flush
    std::cout << "both written\n";
    return 0;
}

Escribir y después leer

Un patrón habitual consiste en escribir los datos, cerrar el archivo y volver a abrirlo para leerlos.

#include <iostream>
#include <fstream>

int main() {
    {
        std::ofstream out("rt.txt");
        out << 7 << ' ' << 8 << '\n';
    }
    std::ifstream in("rt.txt");
    int a, b; in >> a >> b;
    std::cout << a + b << '\n';
    return 0;
}

Elegir los modos de apertura

Combine las opciones con |. Modos habituales: ios::out (predeterminado), ios::app (anexar), ios::trunc (borrar).

#include <iostream>
#include <fstream>

int main() {
    std::ofstream out("modes.txt", std::ios::out | std::ios::trunc);
    out << "fresh\n";
    std::cout << "opened with explicit modes\n";
    return 0;
}

Comprobación rápida

Compruebe su comprensión de los modos de ofstream.

Resumen

Ha aprendido que std::ofstream:

  • escribe con << y trunca de forma predeterminada
  • anexa con std::ios::app
  • almacena la salida en un búfer; std::flush/std::endl/el cierre la envían al disco

A continuación, gestionará bytes sin procesar mediante E/S de archivos binarios.

Preguntas frecuentes

¿La lección «Escritura de archivos con ofstream» es gratis?

Sí — el texto completo de «Escritura de archivos con ofstream» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Escritura de archivos con ofstream»?

Escriba archivos de salida Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C++ Academy?

No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Escritura de archivos con ofstream»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C++ Academy?

Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Lectura de archivos con ifstream
  2. Escritura de archivos con ofstream
  3. E/S de archivos binarios
  4. Gestión de errores y estado
← Volver a C++ Academy