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
- Leggere file con ifstream
- Scrivere file con ofstream
- I/O di file binari
- Gestione degli errori e stato