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




testata fstream Esso fornisce la funzionalità per leggere i dati da un file e scrivere sul file. In generale, è molto simile all'intestazione iostream, che lavora con la console, perché la console è anche un file. Pertanto, tutte le operazioni di base sono identiche, per piccole differenze, come nel topic precedente iostream.

Le operazioni più frequenti seguenti:

  1. Операторы перенаправления ввода\вывода<< e >>
  2. Metodi di registrazione e lettura file getline() e ottenere() c mettere()
  3. Streaming metodi di lettura e scrittura Scrivi() e leggere()
  4. Методы открытия\создания и закрытия файлов Aperto() e vicino()
  5. I metodi di verifica se si apre il file è aperto() e se alla fine del file viene raggiunta eof()
  6. Impostare l'output formattato per >> attraverso larghezza() e precisione()
  7. posizionamento tellg(), tellp() e seekg(), seekp()

Non è tutte le possibilità, che fornisce biblioteca fstream. Consideriamo tutti ora non lo facciamo, dal momento che la loro gamma di applicazione è abbastanza stretto. Conoscere quanto sopra. Iniziare con la lettura della classe.

classe ifstream

Esso offre l'opportunità di leggere i file. Aprire il file in due modi: metodo chiamando Aperto() oppure inserendo il percorso nel costruttore. È necessario preparare un file di testo, prima, iniziare a digitare il codice. Sul disco d, creare una cartella denominata 1 e in essa, creare un file con estensione txt – “файл.txt”.

Apertura di un file nel costruttore si presenta così:

Quindi chiediamo di aprire un file denominato file.txt txt, che si trova nella cartella con il nome 1, e la cartella si trova nell'unità d.

Utilizzando il metodo aperto() comodamente, se il programmatore non vuole essere legato direttamente in un file. Improvvisamente hai bisogno di una proprietà di classe o di variabile globale, bene, quindi aprire il file già. Se è necessario aprire un file all'interno di una determinata funzione, di lavorare con lui e chiudere, è possibile impostare il percorso del file direttamente nel costruttore. In generale, a seconda della situazione.

l'apertura del file, opportuno prescrivere da: se ha aperto? Poiché ci sono una serie di ragioni, su cui il file non può essere aperto, e non vediamo. per esempio, file con il nome specificato non è prescritto nella cartella o il percorso non è valido. Si può andare in due modi: controllare il file in una variabile espressione logica (applicazione dell'operatore “!”, es) oppure utilizzare il metodo è aperto() :

Così tutto funzionerà bene e aprirà il file:

библиотека fstream, lavorare con i file in C ++, La programmazione per i principiantiOra provate a digitare il nome della cartella non è 1, e 2 ifstream file ("d:\\<span style ="colore: #ff0000;"><forte>2</forte>\\файл.txt”); e riavviare il programma. Dal momento che il nome della cartella specificata, non abbiamo creato, quindi il file, naturalmente, Esso non può essere aperto:

библиотека fstream, lavorare con i file in C ++, La programmazione per i principianti

Il secondo controlla forma di realizzazione utilizzando il metodo è aperto() :

metodo è aperto() ritorno 1, Se il file viene trovato e aperto con successo. altrimenti restituisce 0 e il codice di lavori prescritti nel blocco altro.

Se il file non è aperto – desiderabile per gestire l'errore. generalmente, se tutto il programma di lavoro associato al file che scrivono un certo messaggio alla console, e mettere fuori dal programma. Quando gravi errori comuni per restituire un'esecuzione di codice (numero), che caratterizzano uno o un altro errore. I codici per ogni tipo di errore l'autore del programma può inventare il proprio. Uno dei modi per gestire gli errori nel programma, abbiamo considerato in questo articolo Le eccezioni in C ++.

Se il file viene aperto correttamente, da esso si può leggere.

Leggere l'operatore >>

Così come in iostream Lettura può essere organizzato dall'operatore >>, che indica in cui sarà effettuato variabile per leggere:

considera reale, stringa e integer. fila fine lettura, se c'era uno spazio o alla fine della linea. Vale la pena notare, che l'operatore >> E 'applicato a file di testo. La lettura da un file binario per rendere al meglio con il metodo leggere().

Tra l'altro, questa affermazione è molto conveniente, se il compito è quello di dividere il file in parole:

metodi getline() и ottenere()

Leggere la stringa di caratteri alla traslazione del carrello è reso uguale a iostream da getline(). Inoltre, si raccomanda di utilizzare la versione di overload della funzione, se si legge una riga di tipo stringa:

Se avete bisogno di leggere in un array di caratteri char[], entrambi ottenere() o getline() così come i metodi:

Il principio è generalmente la stessa, come negli analoghi di iostream: Mostrato come buffer parametro (variabile, dove sarà fatto la lettura), ovvero un puntatore a un blocco di memoria (se la variabile è dichiarata in modo statico: char buffer[255] es, è scritto nei parametri &buffer), specifica il numero massimo di leggibile (in questo esempio n), per non traboccare è verificato e l'uscita dei limiti del buffer e il carattere separatore come richiesto, a che Proofreading (in questo esempio il divario). Spero di non aver fatto male battistrada sui fanatici tronco C, se la fuliggine che queste due funzioni 99% intercambiabile, e 95% Essi possono essere sostituiti da leggere().

metodo leggere()

Come nell'esempio precedente?

In realtà qui lo stesso risultato – E 'considerato un determinato numero di caratteri. unica eccezione, non è possibile specificare il delimitatore. leggere() utilizzato per l'input formattato. Esso è destinato principalmente per leggere i file binari. Dal momento che il file di testo – un caso speciale di un binario, questo metodo è del tutto applicabile al file di testo.

metodo vicino()

chiude il file. Anche nulla da aggiungere. Forse l'unica osservazione – su, che il file, aperto per la lettura, Non sarà chiuso da questo metodo di solito non peggiorare. Situazione molto rara, una volta aperto il file per la lettura si deteriora, se si completa il programma senza chiudere il file. Questo danno è associata soprattutto con dispositivi non standard quali unità nastro nastro o quello che alcuni flusso artificiosa di controllori industriali, ma in Feng Shui da ricordare – aprire il file dovrebbe essere chiuso. E 'considerato una buona forma.

metodo eof()

Verifica se viene raggiunta la fine del file. vale a dire. se è possibile da esso per continuare a leggere. L'esempio precedente dell'operatore word correzione di bozze >> basta usare questo controllo.

metodo seekg()

Installa la posizione corrente al desiderato, indica il numero. Questo metodo è anche trasmesso procedimento di posizionamento:

  • ios_base::fine – Отсчитать новую позицию с конца файла
  • ios_base::begОтсчитать новую позицию с начала файла (абсолютное позиционирование)
  • ios_base::curПерескочить на n байт начиная от текущей позиции в файле (per impostazione predefinita,)

metodo tellg()

Иногда нужно получать информацию о том, сколько уже прочитано. В этом поможет метод tellg():

Он возвращает значение типа int, которое показывает сколько уже пройдено в байтах. Его можно использовать в паре с методом seekg(), чтоб получать размер файла:

В качестве примера работы методов бинарного чтения можно разобрать такой classe:

Подобные обертки-классы удобно использовать, если встречается задача читать из бинарного файла целые структуры.

Video di lavorare con i file in C ++:

Newsletter nuove lezioni sulla programmazione:

Lavorare con i file in C ++. parte 1 – Библиотека fstream.
4 (80%) 4 voti

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

  1. Добрый вечер. Ребята, почему то не открывается файл. Уже пробовал его и диск и D и С ну не как не видит файл и все тут.

    #includere
    #includere
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “rus”);
    ifstream file(“d:\\111.txt”);
    Se (file.is_open()) // вызов метода is_open()
    cout << "Все ОК! Файл открыт!\n n" << endl;
    altro
    {
    cout << "Файл не открыт!\n n" << endl;
    ritorno -1;
    }
    sistema("pause");
    ritorno 0;
    }

    1. Прошу прощение. Все пошло. Это win 7 сама расширения файла ставит блин.

Lascia un Commento

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