Entrada Y Salida C++
1. 2. 3. 4.
Gestión de E/S. Clases básicas. E/S estándar. Manejo de ficheros.
Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.
Gestión de Entrada/Salida
•
•
Principios generales (objetivos): – Independencia y transparencia entre recursos, emisores y receptores de información. – No aparezcan parámetros físicos. – Sencillo, eficiente,flexible, seguro y completo. En P.O. debe manejar datos básicos y estructurados: – conversión objetos en información comprensible y accesible desde los diferentes centros emisores y receptores. Mecanismo de E/S en P.O. se divide en: – Salida: conversión a entidades externas: usuario, otra aplicación, máquinas, etc. – Entrada: inversa de la salida. – Formato E/S: especificaciones de formato y estructuraque se captura desde o se emite al exterior. – Ficheros y Flujos: tratamiento especializado de dispositivos y ficheros.
•
Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.
122
Gestión de Entrada/Salida en C++
• •
En C:
– – – – – –
Funciones de E/S complicadas y con importantes deficiencias. No efectúan comprobación de tipos. Funciones E/S, biblioteca iostream.hComprobación de los tipos de datos. Tratamiento uniforme de los tipos de datos y clases de objetos. Mecanismos para crear nuevas funciones de E/S para dispositivos no estándar, con mismo tipo de tratamiento. flujo de datos desde un origen (entrada) a un destino (salida). Permite almacenamiento en una salida o extracción desde una entrada. Se asocian a dispositivos físicos o ficheros. Operadoresinserción >: • Sobrecarga de operadores >.
123
En C++:
•
El concepto de stream en C++:
– – – –
Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.
Gestión de Entrada/Salida en C++
•
Clases básicas:
ios
istream
ostream
iostream
•
Clase ios contiene:
– –
•
puntero a objeto buffer de almacenamiento temporal. constantes y variables de formato deE/S y de error. definen funciones para entrada y salida con formato, respectivamente.
Clase iostream y ostream:
–
Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.
124
Gestión de Entrada/Salida en C++
•
E/S estándar en C++:
–
–
–
Entrada estándar: • Representa al dispositivo de entrada por defecto, generalmente el teclado. • El stream asociado es cin,de la clase istream. Salida estándar: • Representa al dispositivo de salida por defecto, generalmente la pantalla. • El stream asociado es cout, de la clase ostream. Salida de error: • Representa al dispositivo de salida por defecto donde se envían los mensajes de error, generalmente la pantalla. • Los streams asociados son cerr y clog, de la clase ostream.
Lenguaje C++. Leng. Prog. II.Filiberto Pla y Jorge Badenas.
125
Gestión de Entrada/Salida en C++
•
Parámetros y flags de formato:
– ios define una variable que agrupa 15 bits –
de estado de formato. ios proporciona 15 constantes que permiten diferenciar los bits de formato:
Flag Bit Field --------------------------------ios::left ios::adjustfield ios::right ios::internal --------------------------------ios::decios::basefield ios::oct ios::hex --------------------------------ios::scientific ios::floatfield ios::fixed --------------------------------ios::skipws se ignoran espacios en blanco ios::showbase muestra indicador de la base ios::uppercase X y E mayúsculas ios::showpoint 0.1 y 2.0 en lugar de .1 y 2. ios::unitbuf se vacía buffer S tras cada inserción ios::showpos muestra el signo positivocompatibilidad con E/S de C ios::stdio ---------------------------------
Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas.
126
Gestión de Entrada/Salida en C++
•
Establecimiento del formato con funciones:
Función (consulta/cambio) Ejemplo ------------------------------------------------------fill cout.fill(‘-’); precision cout.precision(5); width cout.width(30); flags...
Regístrate para leer el documento completo.