📜  C++ wcin

📅  最后修改于: 2020-09-25 14:38:41             🧑  作者: Mango

C++中的wcin对象是wistream类的对象。它用于接受来自标准输入设备(例如键盘)的输入。它与标准C输入流stdin相关联。

wcin和cin之间的区别

cin用户使用char (窄字符)作为字符类型。它可以用于ASCII和ANSI 字符。

为了国际化,我们需要不适合char Unicode 字符串 。 wcin使用wchar_t (宽字符),可用于Unicode 字符。

wcin声明

extern wistream wcin;

它在头文件中定义。

确保在第一次构造ios_base::Init类型的对象期间或之前初始化wcin对象。构造完wcin对象后, wcin.tie()返回&wcout ,这意味着对 wcin 如果有待输出的任何字符,则强制调用wcout.flush()

wcin的“ wc”表示“宽字符”,“ in”表示“输入”,因此wcin表示“宽字符输入”。 wcin对象与提取运算符 (>>)一起使用,以接收字符流。通用语法为:

wcin >> varName;

提取运算符可以不止一次地用于接受多个输入,例如:

wcin >> var1 >> var2 >> … >> varN;

wcin对象还可以与其他成员函数一起使用,例如getline()read()等。一些常用的成员函数是:

示例1:带有提取运算符的 wcin:

#include 

using namespace std;

int main()
{
    wchar_t word[20];
    
    wcout << L"Enter a word: ";
    wcin >> word;
    
    wcout << word;
    return 0;
}

运行该程序时,可能的输出为:

Enter a word: kathmandu
kathmandu

示例2:具有成员 函数的 wcin:

#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;
}

运行该程序时,可能的输出为:

Enter a string: program using wcin
Enter a character: h
String = program using wcin
Character = h

小心

建议使用C++ 11中引入的char16_tchar32_t代替wchar_t因为wchar_t在某些系统上为16位,而在其他系统上为32位。这使得难以移植。