Hi Ashish,
Si prega di trovare la risposta qui.
C/C++ IO sono basati su flussi, che sono sequenze di byte che fluiscono dentro e fuori i programmi (proprio come l'acqua e l'olio che fluiscono attraverso un tubo). Nelle operazioni di input, i byte di dati fluiscono da una fonte di input (come tastiera, file, rete o un altro programma) nel programma. Nelle operazioni di output, i byte di dati fluiscono dal programma verso un sink di output (come console, file, rete o un altro programma). Streams agisce come un intermediario tra i programmi e i dispositivi di IO reali, in modo tale da liberare i programmatori dalla gestione dei dispositivi reali, in modo da archiviare operazioni di IO indipendenti dal dispositivo.
C++ fornisce sia le funzioni di IO formattato che non formattato. Nell'IO formattato o di alto livello, i byte sono raggruppati e convertiti in tipi come int, double, string o tipi definiti dall'utente. Nell'IO non formattato o di basso livello, i byte sono trattati come byte grezzi e non convertiti. Le operazioni di IO formattato sono supportate tramite l'overloading degli operatori di inserimento del flusso (<<) e di estrazione del flusso (>>), che presenta un'interfaccia IO pubblica coerente.
Per eseguire input e output, un programma C++:
- Costruisce un oggetto stream.
- Connette (Associa) l'oggetto stream ad un dispositivo IO reale (es, tastiera, console, file, rete, un altro programma).
- Effettua operazioni di input/output sul flusso, tramite le funzioni definite nell'interfaccia pubblica del flusso in modo indipendente dal dispositivo. Alcune funzioni convertono i dati tra il formato esterno e il formato interno (IO formattato); mentre altre non lo fanno (IO non formattato o binario).
- Disconnettere (Dissociare) lo stream dal dispositivo di IO attuale (per esempio, chiudere il file).
- Liberare l'oggetto stream.
Grazie...:)