C ++ wcin - Thư viện chuẩn C ++

Đối tượng wcin trong C ++ là một đối tượng của lớp wistream. Nó được sử dụng để chấp nhận đầu vào từ thiết bị đầu vào tiêu chuẩn tức là bàn phím. Nó được liên kết với dòng đầu vào C tiêu chuẩn stdin.

Sự khác biệt giữa wcin và cin

cinngười dùng char(ký tự hẹp) làm kiểu ký tự. Nó có thể được sử dụng cho các ký tự ASCII và ANSI.

Để quốc tế hóa, chúng tôi cần các chuỗi Unicode không phù hợp char. wcinsử dụng wchar_t(ký tự rộng) và có thể sử dụng cho các ký tự Unicode.

khai báo wcin

 extern wistream wcin;

Nó được định nghĩa trong tệp tiêu đề "> tệp tiêu đề.

Đối wcintượng được đảm bảo được khởi tạo trong hoặc trước lần đầu tiên một đối tượng kiểu ios_base::Initđược xây dựng. Sau khi wcinđối tượng được xây dựng, wcin.tie()trả về &wcoutcó nghĩa là bất kỳ hoạt động đầu vào được định dạng nào trên wcin buộc một lệnh gọi wcout.flush()nếu có bất kỳ ký tự nào đang chờ xuất.

"Wc" in wcinđề cập đến "ký tự rộng" và "in" có nghĩa là "đầu vào", do đó wcincó nghĩa là "đầu vào ký tự rộng". Đối wcintượng được sử dụng cùng với toán tử trích xuất (>>) để nhận một luồng ký tự. Cú pháp chung là:

 wcin >> varName;

Toán tử trích xuất có thể được sử dụng nhiều lần để chấp nhận nhiều đầu vào như:

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

Các wcinđối tượng cũng có thể được sử dụng với chức năng thành viên khác như getline(), read(), vv Một số các chức năng thành viên thường được sử dụng là:

  • wcin.get(wchar_t &ch): Đọc một ký tự rộng và lưu trữ nó trong ch.
  • wcin.getline(wchar_t *buffer, int length): Đọc một luồng các ký tự rộng vào bộ đệm chuỗi, Nó dừng lại khi
    • nó có độ dài đọc 1 ký tự hoặc
    • khi nó tìm thấy một ký tự cuối dòng (' n') hoặc cuối tệp.
  • wcin.read(wchar_t *buffer, int n): Đọc n byte (hoặc cho đến khi kết thúc tệp) từ luồng vào bộ đệm.
  • wcin.ignore(int n): Bỏ qua n ký tự tiếp theo từ luồng đầu vào.
  • wcin.eof(): Trả về giá trị khác không nếu đạt đến cuối tệp (eof).

Ví dụ 1: wcin với toán tử trích xuất:

 #include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )

Khi bạn chạy chương trình, đầu ra có thể sẽ là:

 Nhập một từ: kathmandu kathmandu

Ví dụ 2: wcin với chức năng thành viên:

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

Khi bạn chạy chương trình, đầu ra có thể sẽ là:

 Nhập một chuỗi: chương trình sử dụng wcin Nhập một ký tự: h String = chương trình sử dụng wcin Character = h

Hãy cẩn thận

char16_tchar32_t, được giới thiệu trong C ++ 11 được khuyến khích sử dụng thay wchar_twchar_tlà 16 bit trên một số hệ thống và 32 bit trên một số hệ thống khác. Điều này gây khó khăn cho việc chuyển cảng.

thú vị bài viết...