Operaciones de entrada/salida sin formato en C++

En este artículo, discutiremos las operaciones de entrada/salida sin formato en C++ . El uso de objetos cin y cout para la entrada y salida de datos de varios tipos es posible debido a la sobrecarga del operador >> y << para reconocer todos los tipos básicos de C++. El operador >> está sobrecargado en la clase istream y el operador << está sobrecargado en la clase ostream .

El formato general para leer datos desde el teclado:

cin >> var1 >> var2 >> …. >> var_n;

  • Aquí, var 1 , var 2 , ……, var n son los nombres de variables que ya están declarados.
  • Los datos de entrada deben estar separados por espacios en blanco y el tipo de datos de la entrada del usuario debe ser similar a los tipos de datos de las variables que se declaran en el programa.
  • El operador >> lee los datos carácter por carácter y los asigna a la ubicación indicada.
  • La lectura de variables finaliza cuando se producen espacios en blanco o se produce un tipo de carácter que no coincide con el tipo de destino.

Programa 1:

C++

// C++ program to illustrate the
// input and output of the data
// entered by user
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int data;
    char val;
 
    // Input the data
    cin >> data;
    cin >> val;
 
    // Print the data
    cout << data << "   " << val;
 
    return 0;
}

Producción: 

Explicación: En el programa anterior, 123 se almacena en la variable val de entero, y B se pasa al siguiente objeto cin y se almacena en la variable de datos de carácter. 

funciones put() y get() :

Las clases istream y ostream tienen funciones predefinidas get() y put() , para manejar operaciones de entrada y salida de un solo carácter. La función get() se puede usar de dos maneras, como get(char*) y get(void) para obtener caracteres, incluidos espacios en blanco, caracteres de nueva línea y tabulación. La función get(char*) asigna el valor a una variable y get(void) para devolver el valor del carácter.

Sintaxis: 

datos de caracteres;

// get() devuelve el valor del carácter y lo asigna a la variable de
datos data = cin.get();

// Muestra el valor almacenado en la variable de datos
cout.put(data); 

Ejemplo: 

carácter c;

// asigna valor directamente a c 
cin.get(c); 

// Mostrar el valor almacenado en la variable c
cout.put()

Programa 2: 

C++

// C++ program to illustrate the
// input and output of data using
// get() and puts()
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    char data;
    int count = 0;
 
    cout << "Enter Data: ";
 
    // Get the data
    cin.get(data);
 
    while (data != '\n') {
        // Print the data
        cout.put(data);
        count++;
 
        // Get the data again
        cin.get(data);
    }
 
    return 0;
}

Producción:

funciones getline() y write() :

En C++ , la función getline() y write() proporcionan una forma más eficiente de manejar entradas y salidas orientadas a líneas. La función getline() lee la línea completa de texto que termina con el carácter de nueva línea . Esta función se puede invocar usando el objeto cin .

Sintaxis:

cin.getline(variable_to_store_line, tamaño);

La lectura finaliza con el carácter ‘\n’ (nueva línea) . La función lee el nuevo carácter, pero no lo muestra, sino que lo reemplaza con un carácter NULL . Después de leer una string en particular, el cin agrega automáticamente el carácter de nueva línea al final de la string.

La función write() muestra la línea completa de una sola vez y su sintaxis es similar a la función getline() solo que aquí se usa el objeto cout para invocarlo.

Sintaxis:

cout.write(variable_to_store_line, tamaño);

El punto clave a recordar es que la función write() no deja de mostrar la string automáticamente cuando aparece un carácter NULL . Si el tamaño es mayor que la longitud de la línea, la función write() se muestra más allá del límite de la línea.

Programa 3:

C++

// C++ program to illustrate the
// input and output of file using
// getline() and write() function
#include <iostream>
#include <string>
using namespace std;
 
// Driver Code
int main()
{
    char line[100];
 
    // Get the input
    cin.getline(line, 10);
 
    // Print the data
    cout.write(line, 5);
    cout << endl;
 
    // Print the data
    cout.write(line, 20);
 
    cout << endl;
 
    return 0;
}

Producción: 

Publicación traducida automáticamente

Artículo escrito por siddhantgore y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *