当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ wcin用法及代码示例


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

wcin和cin的区别

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

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

wcin 声明

extern wistream wcin;

它在<iostream> 头文件中定义。

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

wcin中的"wc"指的是"wide character",'in'表示"input",因此wcin表示“宽字符输入”。 wcin 对象与提取运算符 (>>) 一起使用,以接收字符流。一般语法是:

wcin >> varName;

提取运算符可以多次使用以接受多个输入:

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

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

  • wcin.get(wchar_t &ch): 读取一个宽字符并将其存储在 ch 中。
  • wcin.getline(wchar_t *buffer, int length):将宽字符流读入字符串缓冲区,当它停止时
    • 它已读取长度为 1 的字符或
    • 当它找到 end-of-line 字符 ('\n') 或文件末尾时。
  • wcin.read(wchar_t *buffer, int n): 从流中读取 n 个字节(或直到文件末尾)到缓冲区。
  • wcin.ignore(int n): 忽略输入流中接下来的 n 个字符。
  • wcin.eof(): 如果到达文件末尾 (eof),则返回一个非零值。

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

#include <iostream>

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 <iostream>

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 位。这使得移植变得困难。

相关用法


注:本文由纯净天空筛选整理自 C++ wcin。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。