El objeto wcin en C ++ es un objeto de clase wistream. Se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el teclado. Está asociado con el flujo de entrada estándar C stdin.
Diferencia entre wcin y cin
cin
usuarios char
(carácter estrecho) como tipo de carácter. Se puede utilizar para caracteres ASCII y ANSI.
Para la internacionalización, necesitamos cadenas Unicode que no encajen char
. wcin
usa wchar_t
(carácter ancho) y se puede usar para caracteres Unicode.
declaración de wcin
wcin wistream externa;
Se define en el archivo de encabezado "> archivo de encabezado.
Se wcin
garantiza que el objeto se inicializa durante o antes de la primera vez que ios_base::Init
se construye un objeto de tipo . Una vez wcin
construido el objeto, wcin.tie()
devuelve , lo &wcout
que significa que cualquier operación de entrada formateada en wcin fuerza una llamada a wcout.flush()
si hay caracteres pendientes de salida.
El "wc" en se wcin
refiere a "carácter ancho" y "en" significa "entrada", por wcin
lo tanto significa "entrada de caracteres amplios". El wcin
objeto se utiliza junto con el operador de extracción (>>) para recibir un flujo de caracteres. La sintaxis general es:
wcin >> varName;
El operador de extracción se puede utilizar más de una vez para aceptar múltiples entradas como:
wcin >> var1 >> var2 >>… >> varN;
El wcin
objeto también se puede utilizar con otras funciones miembro, tales como getline()
, read()
, etc. Algunas de las funciones miembro comúnmente utilizados son:
wcin.get(wchar_t &ch):
Lee un carácter amplio y lo almacena en el cap.wcin.getline(wchar_t *buffer, int length):
Lee una secuencia de caracteres anchos en el búfer de cadena, se detiene cuando- ha leído caracteres de longitud 1 o
- cuando encuentra un carácter de final de línea (' n') o el final del archivo.
wcin.read(wchar_t *buffer, int n):
Lee n bytes (o hasta el final del archivo) de la secuencia al búfer.wcin.ignore(int n):
Ignora los siguientes n caracteres del flujo de entrada.wcin.eof():
Devuelve un valor distinto de cero si se alcanza el final del archivo (eof).
Ejemplo 1: wcin con operador de extracción:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Cuando ejecute el programa, una posible salida será:
Introduzca una palabra: katmandú katmandú
Ejemplo 2: wcin con función miembro:
#include using namespace std; int main() ( wchar_t str(50), ch; wcout << L"Enter a string: "; wcin.getline(str, 20); wcout << L"Enter a character: "; wcin.get(ch); wcout << L"String = " << str << endl; wcout << L"Character = " << ch << endl; return 0; )
Cuando ejecute el programa, una posible salida será:
Ingrese una cadena: programa usando wcin Ingrese un carácter: h Cadena = programa usando wcin Carácter = h
Ten cuidado
char16_t
y char32_t
, que se introdujeron en C ++ 11, se recomienda su uso en lugar de wchar_t
porque wchar_t
es de 16 bits en algunos sistemas y de 32 bits en otros. Esto dificulta el puerto.