Lavorare con i file in C ++. parte 2 – Библиотека fstream.




classe ofstream

ritorno classe ifstream, che abbiamo recensito in precedenza, ed è progettato per scrivere su un file.

Come in ifstream, per aprire o creare un file utilizzando un costruttore o un metodo Aperto().

o designer:

parametro ios_base::App indicato, se si desidera aggiungere alla fine di un file esistente. Per esempio, quando il programma mantiene un registro del loro lavoro

Per il controllo di un file aperto soddisfa tutte uguali è aperto()

Il principio è lo stesso. È possibile controllare se un file viene aperto, utilizzando in espressione logica di file molto variabili:

operatore <<

Attaccanti l'output formattato in un file. Il principio è lo stesso, che dell'analogo in iostream.

Esso è destinato a essere visualizzato in file di testo. operazioni di formattazione controllate come larghezza() o setf(). Le loro controparti sono completamente metodi con lo stesso nome iostream.

La sequenza delle variabili di uscita come indicato dalla sinistra alla destra: La prima variabile viene emesso, elencati più vicino al filetto, poi lo seguono.

operatore endl

Analogamente, l'operatore di iostream produce record di trasferimento del carrello per una nuova riga in un file di testo.

metodo write

E 'utilizzato in file binari per la scrittura del blocco di memoria (byte) nel file così come sono. Qualsiasi variabile è anche un schieramento byte, piuttosto può essere visto come. Di conseguenza, questo metodo scrive il file sua rappresentazione macchina (il tipo del suo aspetto nella memoria).

Questo metodo richiede due parametri: Puntatore a un blocco di dati e il numero di byte, quali l'unità prende. Nell'esempio, la stringa prende strlen() byte, intero taglia di() (che darà 4 32-bit integer e per sistemi operativi 8 per davvero).

Ancora una volta devo sottolineare il, che a differenza l'operatore output formattato <<, metodo Scrivi() Esso non visualizza i dati in forma di testo.

metodo close

Chiude metodo del file vicino(). per i file, scrivibile, al contrario di lettura dei file, chiusura di un file – rituale obbligatoria. il file non chiusa non può ottenere i dati. Questo effetto può verificarsi a causa della bufferizzazione stessa SO, quando i dati, scaricata nel file, Essi sono memorizzati in realtà in mente e semplicemente non arrivano a un file. Il sistema operativo stesso decide, quando i dati è il momento di unire.

tale “differita” prugne chiamati “commettere” (dal latino commettere). Tra l'altro questo effetto molto bene usare un sistema di gestione di database, dove inserire i record cadere nella memoria di archiviazione (chiamato transazione). E 'stato solo dopo un comando speciale in massa scritti nel file di database stesso. metodo vicino() solo un esempio di una squadra di chiudere una transazione con il file.

Vale la pena ricordare solo nel caso, che se si vuole impegnarsi a produrre dati senza chiudere file stesso, è necessario utilizzare il metodo rossore()

Questi depositi andranno sul record nel file, ma sarà ancora aperto per le iscrizioni. Questo metodo non è spesso usato, ma utile a sapere.

Metodi di formattazione larghezza, precisione

come in iostream, per il layout bella di dati in file di formattazione dei dati può essere utilizzato per visualizzare all'operatore << .

larghezza() indica la larghezza in caratteri, che sarà prevista nel valore visualizzato, e precisione() il numero di cifre della parte frazionaria di un vero e proprio. L'esempio più semplice: tabella di output a un file di testo i valori delle funzioni trigonometriche:

 

metodi di posizionamento seekp, tellp

Per spostare un file, come nel caso di ifstream V'è una funzione della posizione della permutazione. si chiama seekp() e riceve gli stessi parametri come descritto sopra per seekg().

Per ottenere la posizione corrente di una funzionalità simile in byte dall'inizio del file tellp().

Video di lavorare con i file in C ++:

Newsletter nuove lezioni sulla programmazione:

Lavorare con i file in C ++. parte 2 – Библиотека fstream.
5 (100%) 1 votazione

Lascia un Commento

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *