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
這意味著任何格式化的輸入操作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_t
和 char32_t
代替 wchar_t
,因為 wchar_t
在某些係統上是 16 位,而在其他係統上是 32 位。這使得移植變得困難。
相關用法
- C++ wcstold()用法及代碼示例
- C++ wctrans()用法及代碼示例
- C++ wcerr用法及代碼示例
- C++ wcsftime()用法及代碼示例
- C++ wcstod()用法及代碼示例
- C++ wcscspn()用法及代碼示例
- C++ wcsncmp()用法及代碼示例
- C++ wcstok()用法及代碼示例
- C++ wcsstr()用法及代碼示例
- C++ wcsrchr()用法及代碼示例
- C++ wctob()用法及代碼示例
- C++ wcsncpy()用法及代碼示例
- C++ wcslen()用法及代碼示例
- C++ wcsspn()用法及代碼示例
- C++ wclog用法及代碼示例
- C++ wcschr()用法及代碼示例
- C++ wctomb()用法及代碼示例
- C++ wcstof()用法及代碼示例
- C++ wcstol()用法及代碼示例
- C++ wcspbrk()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ wcin。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。