0Pricing
C++ Academy · Lezione

Scrivere file con ofstream

Scrivere file di output

Scrivere file con ofstream è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

Che cos'è ofstream?

std::ofstream (stream di output su file) scrive i dati nei file. Funziona come std::cout, ma la sua destinazione è un file.

#include <iostream>
#include <fstream>

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

Scrittura del testo

Usi l'operatore << per scrivere stringhe e numeri, esattamente come quando stampa sulla console.

#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;
}

Troncamento predefinito

L'apertura di un file esistente con ofstream cancella il contenuto precedente. Ogni esecuzione riparte da zero.

#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;
}

Aggiunta con la modalità app

Passi std::ios::app per conservare il contenuto esistente e aggiungere nuovi dati alla fine.

#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;
}

Verifica della riuscita della scrittura

Testi lo stream dopo l'apertura. Se si trova in uno stato di errore, la scrittura non riuscirà senza produrre messaggi.

#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;
}

Scrittura di numeri e formattazione

Gli operatori di manipolazione dell'I/O come std::fixed e std::setprecision si applicano anche agli stream di file.

#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;
}

Scrittura di dati in un ciclo

Scriva molte righe usando un ciclo. A ogni iterazione, un record viene inviato al file.

#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;
}

Svuotamento del buffer

L'output viene memorizzato in un buffer. std::flush o std::endl forza immediatamente la scrittura del buffer su disco; anche la chiusura esegue lo svuotamento.

#include <iostream>
#include <fstream>

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

endl e newline

'\n' aggiunge semplicemente un carattere di nuova riga. std::endl aggiunge una nuova riga e svuota il buffer, risultando più lento nei cicli stretti.

#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;
}

Scrittura e successiva lettura

Un modello comune consiste nello scrivere i dati, chiudere il file e poi riaprirlo per rileggerli.

#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;
}

Scelta delle modalità di apertura

Combini i flag con |. Modalità comuni: ios::out (predefinita), ios::app (aggiunta), ios::trunc (cancellazione).

#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;
}

Verifica rapida

Verifichi la Sua comprensione delle modalità di ofstream.

Riepilogo

Ha imparato che std::ofstream:

  • scrive con <<, troncando il contenuto per impostazione predefinita
  • aggiunge dati con std::ios::app
  • memorizza l'output in un buffer; std::flush/std::endl/la chiusura lo scrivono su disco

Successivamente, gestirà i byte grezzi con l'I/O di file binari.

Domande Frequenti

La lezione «Scrivere file con ofstream» è gratuita?

Sì — il testo completo di «Scrivere file con ofstream» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «Scrivere file con ofstream»?

Scrivere file di output Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Scrivere file con ofstream»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Leggere file con ifstream
  2. Scrivere file con ofstream
  3. I/O di file binari
  4. Gestione degli errori e stato
← Torna a C++ Academy