Il modo migliore per gestire i file
I passaggi seguenti devono essere presi per gestire i file:
Flussi in c++
Forniamo input al codice sorgente e il codice esistente restituisce l'output. Il termine "flusso" si riferisce sia al flusso di byte che sono forniti al programma principale come input e alla serie di byte che sono stati restituiti dal codice sorgente. In altre parole, i flussi sono più di una semplice successione di dati che fluiscono.
"Operazione di input e output della console" si riferisce all'ingresso e all'uscita tra il programma in esecuzione e i dispositivi di input e output, come la tastiera e il monitor. "Operazione di input e output del disco" si riferisce agli output e agli input tra software e file attualmente in esecuzione.
Classi di procedure di flusso di file
Una raccolta di classi nei moduli di input e output C ++ specifica le tecniche di gestione dei file. Conterrebbe le classi se Stream, Of Stream e FStream. Tali classi discendono dalla classe FStream e dalla sua classe iostream correlata. Qualsiasi applicazione che utilizza i file dovrebbe includere il file fstream poiché contiene le dichiarazioni per le classi utilizzate per gestire i file di archiviazione.
iOS
Questa categoria è il modulo principale per tutte le altre classi in questo sistema gerarchico. iOS indica il flusso di input-output.
Le risorse richieste per le funzioni di input e output utilizzate da tutte le altre sottoclassi sono fornite in questa classe.
istream
Il flusso di input è indicato come istream. Questo tipo è un discendente della classe "iOS". L'input del flusso è gestito da questa categoria.
Questa classe ha sovrascritto l'operatore di estrazione (>>) per gestire i flussi di input per l'implementazione di un codice.
I metodi get (), getline () e read () sono specificati in questo modulo.
ostream
Ostream si riferisce al flusso di output. La classe "iOS" è un discendente di questo. Il flusso di output è controllato da questo componente.
StreamBuf
Il buffer utilizzato per controllare i flussi di input e output viene indicato tramite un puntatore in questo modulo.
fstreambase
Questa classe offre funzioni prevalenti ai flussi di file. Agisce come base per le categorie: fstream, ifstream e ofstream.
I metodi Open () e Close () sono inclusi in questo modulo.
ifstream
Le operazioni di input sono offerte da questo tipo. Il metodo Open () è presente e l'opzione di input è normale. Acquisisce i metodi read (), seek (), Tell (), get () e getline () da istream.
di Stream
Questa classe contiene funzioni per l'output. Include il metodo di output standard per il metodo Open (). Gestisce i metodi di Ostream Put (), Write (), Seek () e Tell ().
fstream
La capacità di più funzioni di input e output è gestita da questa classe. Per iostream, importa ogni metodo dalle interfacce istream e ostream.
filebuf
L'impostazione dei buffer di file da leggere e per scrivere il testo è la sua funzione. Il metodo del componente del buffer del file potrebbe essere utilizzato anche per calcolare le dimensioni del file. Tre classi-FStream, ifstream e Of Stream-sono presenti nel modello FStream e sono principalmente utilizzate in C ++ per gestire i file.
Funzionamento di C ++ Of Stream
Il file di intestazione iostream, che ha i metodi CIN e COUT, verrebbe utilizzato per leggere dalla sorgente di input e scrivere al file di output. Allo stesso modo, il file di intestazione C ++ FStream viene utilizzato per leggere i contenuti dai file e scrivere informazioni in file. Le tre classi di dati "di Stream, IfStream e FStream sono offerte dal file di intestazione fstream. Utilizziamo di Stream integrando il modulo nel codice anche quando è importante rappresentare il flusso di file di output, generare un file e scrivere dati nel file. La classe Ostream è un discendente di Stream.
Sintassi
La sintassi per C ++ of Stream è la seguente:
# ofstream var_name;
var_name.aprire (file_name);
Il nome della variabile richiesta è rappresentato da "var_name". Il file a cui si accede è definito "file_name".
Il metodo Apri del flusso di output
Un flusso di file di output (OFSTREAM) dovrebbe essere collegato a un particolare file system nel costruttore o nel metodo aperto in modo che possa essere utilizzato. Gli utenti possono utilizzare l'istanza di flusso identica con diversi file se utilizziamo il metodo aperto. I parametri utilizzati per identificare il file sono simili a tutti gli scenari.
Normalmente, viene specificato un parametro in modalità aperta ogni volta che si aprirà un file collegato a un flusso di output. Questi attributi, che sono stati enumeratori nel modulo di flusso di input-output, potrebbero essere accoppiati utilizzando il bitwise o l'operatore.
IL Mettere Metodo
Una lettera è scritta nel flusso di output con il metodo put.
IL Scrivere Metodo
Un blocco di memoria viene scritto su un flusso di file di output tramite il metodo di scrittura. Il numero di byte presentati è fornito dal parametro di dimensioni. L'intera struttura della classe è scritta perché il metodo di scrittura non termina quando incontra un elemento nullo. Un comando char e il numero di caratteri da scrivere sono i due ingressi richiesti dalla funzione. Poco prima del riferimento dell'elemento struttura, prendi nota della conversione appropriata in carbone *.
I metodi SeekP e Tellp
Un puntatore intrinseco che identifica il percorso della prossima scrittura dei dati viene mantenuto da un flusso di file di output. Questa porta è creata dalla chiamata di funzione Seekp che restituisce anche file di archiviazione ad accesso casuale. L'indirizzo del file è ottenuto dalla chiamata della funzione Tellp.
La funzione stretta
Il file di archiviazione del flusso di output viene terminato utilizzando la chiamata del metodo di chiusura. Per finire tutti gli output sul sistema, il file dovrebbe essere chiuso. Se necessario, il Destructor Of Stream termina il file per te. Tuttavia, se vogliamo aprire un nuovo file per la stessa classe di streaming, utilizzeremo il metodo chiuso. Se il metodo del costruttore o del membro aperto apre il file, il distruttore del flusso di output interrompesse il funzionamento nel file del flusso? Dobbiamo chiudere manualmente il file se utilizziamo la chiamata del metodo allegato o forniamo un nome file per un file aperto al costruttore.
Costanti membri
Diverse costanti dei membri usano per le funzioni di Stream sono:
Costante membro: in *
Rappresenta l'input.
File accessibile per la lettura. Le operazioni di input sono fornite dal tampone di flusso intrinseco.
Membro costante: fuori
Rappresenta l'output.
File accessibile per il modulo scritto: le operazioni di output sono gestite dal buffer di flusso sottostante.
Costante membro: binario
Mostra il valore binario.
Invece di usare il testo, le operazioni vengono eseguite in modalità binaria.
Membro costante: mangiato
Indica alla fine.
L'endpoint del file è dove inizia il luogo di output.
Costante membro: app
Rappresenta l'append.
I dati correnti del file vengono aggiunti a ogni operazione di output, che si svolge.
Costante membro: trunc
Indica il troncamento.
Poco prima dell'apertura del file, tutti i suoi dati sono stati rimossi.
Esempio 1
In questo esempio, vedremmo come creare un file in c++.
All'inizio di questo codice, aggiungiamo librerie che sono e che sono responsabili della gestione dei file come creare, aggiungere, aggiornare ed eliminare i file. Quindi, aggiungi lo standard dello spazio dei nomi. Successivamente, iniziamo la nostra funzione principale (). Nella funzione principale () otteniamo il nostro file utilizzando la funzione Ofstream () utilizzata per creare il nuovo file nel file system C ++. Nei parametri di questa funzione, passiamo il nostro file dando il nome giusto del file.
Ricorda che il file di codice e il file di testo devono essere inseriti nella stessa posizione. Qui, scriviamo la condizione che se il file esiste non inserire nell'istruzione ed eseguiamo l'istruzione else in cui mostriamo un messaggio che il file esiste. Quando il file non sarà presente, creiamo il file e scriviamo del testo in questo file. Quindi, chiudiamo il file chiamando la funzione chiusura () con il nome del file come puoi vedere nelle due output di seguito. Eseguiamo il codice per la prima volta e il file viene creato ma quando eseguiamo il codice la seconda volta ci dà il messaggio che il file esiste.
Se esiste il file definito, acquisiamo questo tipo di risultato.
Esempio 2
In questo caso, scriviamo i dati nel file.
Come sappiamo, la funzione Of Stream viene utilizzata anche per scrivere, aggiornare o modificare il file di testo nel file system di C++. Quindi, qui scriviamo un codice per scrivere un po 'di testo a un file di documenti. A tale scopo, abbiamo le nostre librerie necessarie che e la prima libreria contenente la definizione di funzioni input-output. Quindi, utilizziamo lo standard dello spazio dei nomi e scriviamo la funzione principale ().
Dopodiché, ottieni il file che abbiamo creato con l'aiuto del nostro ultimo codice. Ancora una volta, utilizzando la funzione Ofstream (), la funzione gestirà tutte le nostre operazioni relative al deposito in questo linguaggio. Inizializziamo un file e ci passiamo il nostro file di testo utilizzando la funzione Open () e passando il file di testo nei parametri di questa funzione. Quindi, passiamo una frase al file e visualizziamo un messaggio "Scrivi correttamente". Quindi, chiama la funzione Close () con il nome del file per chiudere il nostro file di testo aperto all'inizio del codice per aggiungere un po 'di testo in questo file.
Esempio 3
In questo caso, vediamo come verificare se il file è vuoto o meno.
Nel file precedente, abbiamo aggiunto il nostro testo nel file ma non abbiamo visualizzato. Quindi, possiamo anche verificare prima se il nostro file è vuoto o meno visualizzando il contenuto del file. Se è vuoto, aggiungiamo un po 'di testo e visualizziamo di nuovo i dati nella console. La prima riga include i nostri file di intestazione che supportano le nostre diverse funzioni relative all'input e all'output, nonché relative ai nostri file. Aggiungiamo il nostro spazio dei nomi. Nella riga successiva, iniziamo la funzione principale () in cui eseguiamo tutte le nostre funzionalità scrivendo il codice.
Innanzitutto, chiamiamo la funzione Ofstream () e inizializziamo il file. Quindi, chiama la funzione Open () per passare il file fornendo il nome del file ai parametri. Quindi, dai alla variabile del file che abbiamo creato in precedenza. Successivamente, visualizziamo i dati del file utilizzando il ciclo "while" perché la lingua C ++ legge il file di testo Word per parola, quindi usiamo un ciclo while. Nella condizione di un ciclo while, chiamiamo la funzione Get Line che viene utilizzata per leggere il file di testo. Nei parametri, se questa funzione invia il nostro file e una stringa che salva tutti i dati. Nel ciclo while, visualizziamo il nostro file e chiudiamo il file chiamando la funzione chiusura ().
Esempio 4
In questa illustrazione, modifichiamo i dati del file.
Nel codice precedente, come puoi vedere, visualizziamo il nostro file ma non c'erano dati in quel file, quindi qui aggiungiamo alcuni dati sotto forma di testo. Quindi, proviamo a visualizzare quei dati. Innanzitutto, scriviamo le nostre biblioteche. Queste biblioteche ci aiutano a chiamare le funzioni per eseguire alcune azioni al posto di un codice o algoritmi complessi per svolgere una funzione complicata in tutti i campi di codice. Queste biblioteche erano e . Quindi, aggiungiamo standard dello spazio dei nomi. Prima di iniziare il codice, invochiamo la funzione principale () perché dobbiamo scrivere tutto il nostro codice in questa funzione. Nella funzione principale (), la prima cosa che abbiamo fatto è stato inizializzare il file usando la nostra funzione Ofstream ().
Quindi, passiamo il nostro file di testo a questa variabile del file chiamando la funzione Open (). Quando chiamiamo questa funzione, abbiamo fatto le cose. Innanzitutto, passiamo il nostro file di testo alla variabile del file e apriamo il file di testo. Nella riga successiva, aggiungiamo alcuni dati di testo al file di testo che abbiamo aperto in precedenza. Dopo aver inserito i dati, chiudiamo il nostro file aggiungendo la funzione Close () con la variabile del file di testo. Qui, abbiamo inizializzato una stringa. Lo scopo di questa stringa è ottenere i dati dal file che creiamo e aggiorniamo sopra. Quindi, chiamiamo la nostra funzione ifstream () responsabile della visualizzazione dei dati che si trovano sotto forma di testo nel file e utilizzando questa funzione inizializziamo anche un'altra variabile di file e passiamo il nostro file di testo a questa variabile del file.
Ora stiamo visualizzando i dati. Quindi, a questo scopo, usiamo un ciclo "mentre". Chiamiamo la funzione getline () per recuperare le righe dal nostro file di testo che passiamo nei parametri di questa funzione. In questo ciclo, utilizziamo 'cout' per stampare la stringa che passiamo nella funzione getline (). Al termine del display, il loop termina dopo aver chiuso il file chiamando la funzione chiusura () con il nostro file di testo.
Conclusione
Nella prima sezione di questo articolo, abbiamo discusso di quale gestione dei file nel linguaggio di programmazione C ++. Abbiamo anche parlato del metodo appropriato per gestire i file e le funzioni delle classi di flusso di file. Il metodo Ofstream () è stato quindi utilizzato in una varietà di programmi che abbiamo implementato. Nel primo programma, è stato creato un file. Quindi, nella prossima istanza, il contenuto viene scritto nel file. Successivamente, determiniamo se il file è vuoto. Dobbiamo aggiornare il file alla fine.