Hola Ashish,
Por favor, encuentre su respuesta aquí.
Las IO de C/C++ se basan en flujos, que son secuencias de bytes que fluyen dentro y fuera de los programas (al igual que el agua y el aceite que fluyen a través de una tubería). En las operaciones de entrada, los bytes de datos fluyen desde una fuente de entrada (como el teclado, el archivo, la red u otro programa) hacia el programa. En las operaciones de salida, los bytes de datos fluyen desde el programa hacia un sumidero de salida (como la consola, el archivo, la red u otro programa). Los streams actúan como intermediarios entre los programas y los dispositivos de IO reales, de tal manera que liberan a los programadores del manejo de los dispositivos reales, para archivar las operaciones de IO independientes del dispositivo.
C++ proporciona tanto las funciones de IO formateadas como las no formateadas. En IO formateado o de alto nivel, los bytes se agrupan y se convierten en tipos como int, double, string o tipos definidos por el usuario. En las operaciones de entrada y salida sin formato o de bajo nivel, los bytes se tratan como bytes brutos y no se convierten. Las operaciones de IO con formato se soportan a través de la sobrecarga de los operadores de inserción de flujo (<<) y extracción de flujo (>>), que presenta una interfaz de IO pública consistente.
Para realizar la entrada y la salida, un programa C++:
- Construye un objeto de flujo.
- Conecta (Asocia) el objeto de flujo a un dispositivo de IO real (por ejemplo, teclado, consola, archivo, red, otro programa).
- Realizar operaciones de entrada/salida en el flujo, a través de las funciones definidas en la interfaz púbica del flujo de una manera independiente del dispositivo. Algunas funciones convierten los datos entre el formato externo y el formato interno (IO formateado); mientras que otras no lo hacen (IO no formateado o binario).
- Desconectar (Disociar) el stream al dispositivo IO real (por ejemplo, cerrar el archivo).
- Liberar el objeto stream.
Gracias..:)