![Cómo cambiar el correo electrónico en Discord](https://trspos.com/wp-content/uploads/cambiar-correo-electronico-de-discordia-400x267.jpg)
Funciones istream en C++
![Funciones istream en C++](https://trspos.com/wp-content/uploads/cpp-istream-functions.jpg)
En programación, es común necesitar leer datos de entrada para procesarlos posteriormente. En C++, la clase istream se utiliza para hacer lectura de datos input stream, y esta clase dispone de varias funciones para realizar esta tarea. En este artículo, nos enfocaremos en conocer las diferentes funciones istream disponibles y su uso en la lectura de datos en C++.
Función get()
La función get() es utilizada para leer un carácter desde una cadena. Esta función extrae el carácter del buffer de entrada y se mueve al siguiente carácter. Esta función se puede utilizar para leer un archivo de texto carácter por carácter.
La sintaxis para utilizar esta función es la siguiente:
int get();
La función devuelve un entero representando el valor del siguiente carácter leído.
Función getline()
La función getline() es utilizada para leer una línea completa de caracteres en una cadena. Esta función se utiliza cuando se desea leer una cadena completa en lugar de leer carácter por carácter.
La sintaxis para utilizar esta función es la siguiente:
istream& getline (istream& is, string& str, char delim);
La función toma tres argumentos: el objeto istream, la variable para almacenar la cadena y el delimitador. Esta función deja de leer caracteres cuando se encuentra con el delimitador.
Función ignore()
La función ignore() se utiliza para ignorar los primeros n caracteres en la secuencia de entrada. Esta función es útil cuando se desea ignorar ciertos caracteres y leer sólo lo que viene después.
La sintaxis para utilizar esta función es la siguiente:
istream& ignore (streamsize n = 1, int delim = EOF);
El primer argumento de la función es el número de caracteres que se desean ignorar y el segundo es el delimitador opcional.
Función read()
La función read() se utiliza para leer una cantidad exacta de caracteres de la secuencia de entrada. Esta función es útil cuando se desea leer una cantidad específica de caracteres, independiente del contenido.
La sintaxis para utilizar esta función es la siguiente:
istream& read(char* s, streamsize n);
El primer argumento es el arreglo de caracteres donde se almacenarán los datos leídos, y el segundo argumento es la cantidad de caracteres a ser leídos.
Función peek()
La función peek() se utiliza para leer el siguiente carácter en la secuencia de entrada sin extraerlo. Esta función es útil cuando se desea leer el siguiente carácter sin mover el puntero de lectura.
La sintaxis para utilizar esta función es la siguiente:
int peek();
La función devuelve el valor del siguiente carácter sin extraerlo.
Conclusión
En C++, la clase istream es muy útil para leer datos de entrada. Las diferentes funciones istream disponibles facilitan la lectura de caracteres, líneas o establecer limites en la lectura. Es importante conocer la sintaxis de cada función para poder utilizarlas de forma correcta y eficiente.
Preguntas frecuentes
¿Qué es la clase istream?
La clase istream se utiliza en C++ para hacer lectura de datos input stream.
¿Para qué se utiliza la función getline()?
La función getline() se utiliza para leer una línea completa de caracteres en una cadena.
¿Para qué se utiliza la función ignore()?
La función ignore() se utiliza para ignorar los primeros n caracteres en la secuencia de entrada.
¿Para qué se utiliza la función peek()?
La función peek() se utiliza para leer el siguiente carácter en la secuencia de entrada sin extraerlo.
Ejemplos de Código:
- Ejemplo de uso de getline():
- Ejemplo de uso de read():
#include
#include
using namespace std;
int main () {
string mystr;
cout << "Ingrese una oración: ";
getline (cin, mystr);
cout << "La oración ingresada es: " << mystr << "n";
return 0;
}
#include
#include
using namespace std;
int main () {
char data[100];
ifstream file;
file.open("archivo.txt");
file.read(data, 100);
cout << data << endl;
file.close();
return 0;
}
Deja una respuesta