Manipuladores en C++ con ejemplos

Los manipuladores son funciones auxiliares que pueden modificar el flujo de entrada/salida . No significa que cambiemos el valor de una variable, solo modifica el flujo de E/S usando operadores de inserción (<<) y extracción (>>). 

  • Los manipuladores son funciones especiales que se pueden incluir en la declaración de E/S para modificar los parámetros de formato de un flujo. 
  • Los manipuladores son operadores que se utilizan para dar formato a la visualización de datos.
  • Para acceder a los manipuladores se debe incluir en el programa el archivo iomanip.h.
     

Por ejemplo, si queremos imprimir el valor hexadecimal de 100, podemos imprimirlo como:

cout<<setbase(16)<<100

Tipos de manipuladores Hay varios tipos de manipuladores:

  1. Manipuladores sin argumentos : los manipuladores más importantes definidos por la biblioteca IOStream se proporcionan a continuación.
    • endl : Se define en ostream. Se usa para ingresar una nueva línea y después de ingresar una nueva línea vacía (es decir, fuerza toda la salida escrita en la pantalla o en el archivo) el flujo de salida.
    • ws : se define en istream y se usa para ignorar los espacios en blanco en la secuencia de strings.
    • termina : También se define en ostream e inserta un carácter nulo en el flujo de salida. Por lo general, funciona con std::ostrstream, cuando el búfer de salida asociado debe tener una terminación nula para procesarse como una string C.
    • flush : También se define en ostream y vacía el flujo de salida, es decir, fuerza toda la salida escrita en la pantalla o en el archivo. Sin descarga, la salida sería la misma, pero es posible que no aparezca en tiempo real. Ejemplos: 

CPP

#include <iostream>
#include <istream>
#include <sstream>
#include <string>
 
using namespace std;
 
int main()
{
    istringstream str("           Programmer");
    string line;
    // Ignore all the whitespace in string
    // str before the first word.
    getline(str >> std::ws, line);
 
    // you can also write str>>ws
    // After printing the output it will automatically
    // write a new line in the output stream.
    cout << line << endl;
 
    // without flush, the output will be the same.
    cout << "only a test" << flush;
 
    // Use of ends Manipulator
    cout << "\na";
 
    // NULL character will be added in the Output
    cout << "b" << ends;
    cout << "c" << endl;
 
    return 0;
}
Producción:

Programmer
only a test
abc
  1. Manipuladores con argumentos: algunos de los manipuladores se utilizan con el argumento como setw (20), setfill (‘*’) y muchos más. Todo esto se define en el archivo de encabezado. Si queremos usar estos manipuladores, debemos incluir este archivo de encabezado en nuestro programa. Por ejemplo, puede usar los siguientes manipuladores para establecer el ancho mínimo y llenar el espacio vacío con cualquier carácter que desee: std::cout << std::setw (6) << std::setfill (‘*’);
    • Algunos manipuladores importantes en <iomanip> son:
      1. setw (val): Se utiliza para establecer el ancho de campo en las operaciones de salida.
      2. setfill (c): se usa para completar el carácter ‘c’ en el flujo de salida.
      3. setprecision (val): Establece val como el nuevo valor para la precisión de los valores de punto flotante.
      4. setbase(val): Se utiliza para establecer el valor base numérico para valores numéricos.
      5. setiosflags(bandera): Se utiliza para establecer las banderas de formato especificadas por el parámetro máscara.
      6. resetiosflags(m): Se utiliza para restablecer las banderas de formato especificadas por el parámetro máscara.
    • Algunos manipuladores importantes en <ios> son:
      1. showpos: Obliga a mostrar un signo positivo sobre números positivos.
      2. noshowpos: Obliga a no escribir un signo positivo sobre números positivos.
      3. showbase: Indica la base numérica de los valores numéricos.
      4. uppercase: Obliga a mayúsculas para valores numéricos.
      5. nouppercase: Fuerza minúsculas para valores numéricos.
      6. fijo: utiliza notación decimal para valores de coma flotante.
      7. científico: utiliza notación científica de punto flotante.
      8. hex: Lee y escribe valores hexadecimales para enteros y funciona igual que setbase(16).
      9. dec: Leer y escribir valores decimales para números enteros, es decir, setbase (10).
      10. oct: Leer y escribir valores octales para enteros, es decir, setbase (10).
      11. izquierda: Ajusta la salida a la izquierda.
      12. right: Ajusta la salida a la derecha.

Generalmente se utilizan dos tipos de manipuladores:
1] Parametrizados y 
2] No parametrizados
 

1] Manipuladores parametrizados:-

Manipulador -> Significado
setw (int n) -> Para establecer el ancho de campo en n
setprecision (int p) -> La precisión se fija en p
setfill (Char f) -> Para establecer el carácter que se va a llenar
setiosflags (long l) – > El indicador de formato se establece en l
resetiosflags (l largo) -> Elimina los indicadores indicados por l
Setbase (int b) -> Para establecer la base del número en b

  • setw() es una función en Manipuladores en C++:

         La función setw() es un manipulador de salida que inserta espacios en blanco entre dos variables. Debe introducir un valor entero igual al espacio necesario. 
         Sintaxis:
              setw (int n) 
              Como ejemplo, 
              int a=15; intb=20;
              cout << setw(10) << a << setw(10) << b << endl; 

  • setfill() es una función en manipuladores en C++:
    reemplaza setw(whitespaces) con un carácter diferente. Es similar a setw() en que manipula la salida, pero el único parámetro requerido es un solo carácter. 
    Sintaxis:
         setfill(char ch) 
    Ejemplo:
         int a,b;
         a=15; b=20;
         cout<< setfill(‘*’) << endl;

                cout << setw(5) << a << setw(5) << a << endl;

  • setprecision() es una función en Manipuladores en C++:
    es un manipulador de salida que controla la cantidad de dígitos que se muestran después del decimal para un entero de coma flotante. 
    Sintaxis:
         setprecision (int p)
    Ejemplo:

              flotante A = 1,34255;

              cout <<fijo<< setprecision(3) << A << endl;

  • setbase() es una función en Manipuladores en C++:
    El manipulador setbase() se usa para cambiar la base de un número a un valor diferente. Los siguientes valores base son compatibles con el lenguaje C++: 
    • hex (hexadecimal = 16) 
    • oct (octal = 8) 
    • dec (decimal = 10)  

           Los manipuladores hex, oct y dec pueden cambiar la base de los números de entrada y salida.
 

C++

// Example:
 
#include <iostream>   
#include <iomanip>
 
using namespace std;
main()
{
 
int number = 100;
 
cout << "Hex Value =" << " " << hex << number << endl;
 
cout << "Octal Value=" << " " << oct << number << endl;
 
cout << "Setbase Value=" << " " << setbase(8) << number << endl;
 
cout << "Setbase Value=" << " " << setbase(16) << number << endl;
 
 
return 0;
 
}
Producción

Hex Value = 64
Octal Value= 144
Setbase Value= 144
Setbase Value= 64

2] Los
ejemplos no parametrizados son endl, fixed, showpoint y flush.
• endl: da una nueva línea
• ends: agrega un carácter nulo para cerrar una string de salida
• flush: vacía el flujo del búfer
• ws: omite los espacios en blanco iniciales presentes antes del primer campo
• hex, oct, dec: muestra el número en hexadecimal o octal o en formato decimal
 

C++

// Example: ws – Omits the leading white spaces present before the first field
 
#include<iostream>
using namespace std;
 
int main()
 
{
      char name[125];
      cout << "Enter your name" << endl;
 
      cin >> ws;
 
      cin.getline(name,125);
 
      cout << name << endl;
       
      return 0;
}

Producción

Enter your name
ram
ram

Referencias:

Publicación traducida automáticamente

Artículo escrito por PulkitDahiya 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 *