📅  最后修改于: 2020-09-25 14:38:41             🧑  作者: Mango
cin
用户使用char
(窄字符)作为字符类型。它可以用于ASCII和ANSI 字符。
为了国际化,我们需要不适合char
Unicode 字符串 。 wcin
使用wchar_t
(宽字符),可用于Unicode 字符。
extern wistream wcin;
它在
确保在第一次构造ios_base::Init
类型的对象期间或之前初始化wcin
对象。构造完wcin
对象后, wcin.tie()
返回&wcout
,这意味着对wcout.flush()
。
wcin
的“ wc”表示“宽字符”,“ in”表示“输入”,因此wcin
表示“宽字符输入”。 wcin
对象与提取运算符 (>>)一起使用,以接收字符流。通用语法为:
wcin >> varName;
提取运算符可以不止一次地用于接受多个输入,例如:
wcin >> var1 >> var2 >> … >> varN;
wcin
对象还可以与其他成员函数一起使用,例如getline()
, read()
等。一些常用的成员函数是:
#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
#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_t
和char32_t
代替wchar_t
因为wchar_t
在某些系统上为16位,而在其他系统上为32位。这使得难以移植。