¿Qué son las secuencias en C ++?
C ++ proporciona a los usuarios una serie de bibliotecas que pueden utilizar para realizar tareas de entrada / salida. Estas tareas se realizan en forma de secuencias de bytes, comúnmente llamadas flujos.
Las corrientes se dividen en dos:
Tipos de corrientes
- Flujo de entrada: este es un tipo de flujo donde los bytes fluyen desde un dispositivo como un teclado a la memoria principal.
- Flujo de salida: este es un tipo de flujo en el que los bytes fluyen en la dirección opuesta, es decir, desde la memoria principal y luego al dispositivo, como la pantalla de visualización.
En este tutorial de C ++ aprenderás:
- ¿Qué son las secuencias en C ++?
- ¿Cómo funcionan las transmisiones?
- Tabla de funciones
- Archivos de encabezado C ++ para entrada / salida
- std :: cout
- std :: cin
- std :: cerr
- std :: obstruir
- Manejo de errores con flujos de E / S:
¿Cómo funcionan las transmisiones?
Las secuencias de C ++ funcionan de la siguiente manera:
- Primero, se inicializa una secuencia con el tipo correcto.
- A continuación, debe indicar dónde se producirá la E / S mediante los punteros get / put.
- Después de llegar a la ubicación correcta en una secuencia, puede realizar tareas de entrada y salida utilizando los operadores >> y <<, respectivamente.
Tabla de funciones
Las siguientes son las funciones proporcionadas en el archivo de encabezado stream.h:
Clase | Funciones |
Filebuf | Establece búferes de archivos para lectura / escritura. Tiene funciones close () y open () en él |
fstreambase | Es la clase base para las clases ifstream, fstream y ofstream. Sus operaciones son comunes a los flujos de archivos. |
ifstream | Es una clase de flujo de archivos de entrada para proporcionar operaciones de entrada. |
ofstream | Es una clase de flujo de archivos de salida para proporcionar operaciones de salida. |
fstream | Es una clase de flujo de entrada / salida. Admite operaciones de entrada / salida simultáneas. |
Archivos de encabezado C ++ para entrada / salida
C ++ proporciona tres bibliotecas que vienen con funciones para realizar tareas básicas de entrada / salida. Incluyen:
- Iostream: es un acrónimo de flujo de entrada / salida estándar. Este archivo de encabezado viene con definiciones para objetos como cin / cout / cerr.
- Iomanip: es un acrónimo de manipuladores de entrada / salida. La biblioteca viene con funciones que se pueden utilizar para la manipulación de flujos. Contiene definiciones para objetos como setw, setprecision y otros.
- Fstream: este es un archivo de encabezado para describir el flujo del archivo. Maneja los datos que se leen desde un archivo como entrada o que se escriben en un archivo, la salida.
Las palabras clave cin y cout son muy populares en C ++. Se utilizan para tomar entradas e imprimir salidas, respectivamente. Para usarlos, debe incluir el archivo de encabezado iostream en su programa. La razón es que están definidos en ese archivo de encabezado. Si no se incluye el archivo de encabezado de iostream, se generará un error. Esto se debe a que el compilador de C ++ no logró comprender el significado de las palabras clave.
Los principales objetos definidos en el archivo de encabezado de iostream son cin, cout, cerr y clog. Discutamos sobre ellos.
std :: cout
El objeto cout es una instancia de la clase iostream. Se utiliza para producir resultados en un dispositivo de salida estándar, que normalmente es la pantalla. Se usa junto con el operador de inserción de flujo (<<).
Ejemplo:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream donde se define el objeto cout.
- Incluya el espacio de nombres estándar para que no tengamos que llamarlo cuando usemos sus clases.
- Llame a la función main (). El código del programa debe agregarse dentro de su cuerpo. La llave de apertura {marca el comienzo de su cuerpo.
- Cree una variable de carácter llamada bienvenido para contener la cadena Bienvenido a Guru99.
- Imprime el valor de la cadena de bienvenida en la consola. El endl es una palabra clave de C ++ que significa línea final. Mueve el cursor para comenzar a imprimir texto en la siguiente línea.
- El programa debe devolver valor tras una ejecución exitosa.
- Fin del cuerpo de la función main ().
std :: cin
El objeto cin es una instancia de la clase istream. Lee la entrada del dispositivo de entrada, el teclado. Normalmente se utiliza junto con el operador de extracción (>>). El objeto de extracción es responsable de extraer los datos ingresados a través del teclado del objeto cin.
Ejemplo:
El siguiente ejemplo demuestra cómo utilizar la palabra clave cin en C ++:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro programa. El objeto cin se define en este archivo de encabezado.
- Incluya el espacio de nombres estándar para usar sus clases. No tendrá que llamar a std cuando use sus clases.
- Llame a la función main (). El código del programa debe agregarse dentro de su cuerpo.
- El inicio del cuerpo del programa.
- Declare una variable entera llamada número.
- Imprima un mensaje en la pantalla solicitando al usuario que ingrese un número.
- Lea el valor ingresado por el usuario en la consola desde el teclado.
- Imprima el valor leído arriba en la consola junto con otro texto.
- El programa debería devolver un valor si se ejecuta correctamente.
- Fin del cuerpo de la función principal.
std :: cerr
El objeto cerr forma el flujo de errores estándar para generar errores en C ++. Cerr es una instancia de la clase ostream. El objeto cerr no tiene búfer. Esto significa que se utiliza cuando se va a mostrar un mensaje de error inmediatamente.
Dado que no tiene búfer, no almacena el mensaje de error para una visualización posterior. Se usa junto con el operador de inserción de flujo (<<).
Ejemplo:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream donde se ha definido el objeto cerr.
- Incluya el espacio de nombres estándar para que no tengamos que llamarlo cuando usemos sus clases.
- Llame a la función main (). La lógica del programa debe agregarse dentro de su cuerpo. La llave de apertura marca el comienzo del cuerpo de la función.
- Utilice el objeto cerr para imprimir un error en la consola.
- El programa debe devolver un valor tras una ejecución exitosa.
- Fin del cuerpo de la función principal.
std :: obstruir
El objeto clog es una instancia de la clase ostream. Se utiliza para mostrar errores en la pantalla estándar, el monitor. Es similar al objeto cerr, pero está almacenado en búfer. Dado que está almacenado en búfer, almacena el mensaje de error en el búfer hasta que se llena / vacía. Se usa junto con el operador de inserción de flujo (<<).
Ejemplo:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluyendo el archivo de encabezado de iostream en el que se define el objeto de obstrucción.
- Incluyendo el espacio de nombres std para que podamos usar sus clases sin llamarlo.
- Llamando a la función main (). La lógica del programa debe agregarse dentro de su cuerpo. El {marca el comienzo del cuerpo de la función.
- Utilice el objeto de obstrucción para imprimir un error en la salida estándar, el monitor.
- El programa debe devolver un valor una vez completado con éxito.
- El final del cuerpo de la función main ().
Manejo de errores con flujos de E / S:
Para verificar si una transmisión es válida o no, puede usarla como booleana.
Aquí hay un ejemplo:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
Para obtener más detalles sobre el estado de la transmisión, puede utilizar estas funciones:
- good (): devolverá verdadero si todo está bien.
- bad (): devolverá verdadero si se produce un error fatal.
- fail (): devolverá verdadero después de una operación de transmisión fallida.
- eof (): devolverá verdadero si llega al final de un archivo.
Para saber si una operación de lectura / escritura en particular falló, pruebe el resultado de lectura.
Por ejemplo, para verificar si el usuario ingresó un número entero válido, haga lo siguiente:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
Resumen
- Las tareas de entrada y salida en C ++ se realizan mediante una secuencia de bytes. Los bytes se denominan flujos.
- En un flujo de entrada, los bytes fluyen desde el dispositivo de entrada como un teclado a la memoria principal.
- En un flujo de salida, los bytes de la memoria principal luego a un dispositivo de salida como un monitor.
- El objeto cin es una instancia de la clase istream. Lee la entrada de un dispositivo de entrada como el teclado.
- El objeto cout es una instancia de la clase ostream. Produce salida en dispositivos de salida como el monitor.
- El objeto cerr es una instancia de la clase ostream. Muestra objetos de error en el monitor.
- El objeto clog es una instancia de la clase ostream. Muestra mensajes de error en los dispositivos de salida.
- El objeto clog almacena en búfer los mensajes de error, mientras que el objeto cerr no lo hace.