當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。