C ++ wscanf () - Thư viện chuẩn C ++

Hàm wscanf () trong C ++ đọc ký tự rộng từ stdin.

Hàm wscanf () được định nghĩa trong tệp tiêu đề.

nguyên mẫu wscanf ()

 int wscanf (định dạng const char *,…);

Hàm wscanf () đọc dữ liệu từ stdin và lưu trữ các giá trị vào các biến tương ứng.

tham số wscanf ()

  • format: Con trỏ tới một chuỗi ký tự kết thúc bằng null chỉ định cách đọc đầu vào. Nó bao gồm các chỉ định định dạng bắt đầu bằng%.
    Chuỗi định dạng có các phần sau:
    • Các ký tự không có khoảng trắng ngoại trừ% mỗi ký tự sử dụng một ký tự giống hệt nhau từ luồng đầu vào. Nó có thể khiến hàm không thành công nếu ký tự tiếp theo trên luồng không so sánh bằng nhau.
    • Ký tự khoảng trắng: Tất cả các ký tự khoảng trắng liên tiếp được coi là ký tự khoảng trắng duy nhất. Hơn nữa, ' n', ' t' và '' được coi là giống nhau.
    • Đặc điểm kỹ thuật chuyển đổi: Nó tuân theo định dạng sau:
      • Ký tự% ban đầu chỉ định phần đầu
      • Một * tùy chọn được gọi là ký tự loại bỏ gán. Nếu ký tự này có mặt, wscanf () không gán kết quả cho bất kỳ đối số nhận nào.
      • Một số nguyên dương tùy chọn chỉ định độ rộng trường tối đa. Nó chỉ định số lượng ký tự tối đa mà wscanf () được phép sử dụng khi thực hiện chuyển đổi được chỉ định bởi đặc tả chuyển đổi hiện tại.
      • Công cụ sửa đổi độ dài tùy chọn chỉ định kích thước của đối số nhận.
      • Công cụ định dạng chuyển đổi.
    Định dạng thông số
    Định dạng chỉ định Sự miêu tả
    % Khớp với chữ%
    c Khớp một ký tự hoặc nhiều ký tự. Nếu chiều rộng được xác định, hãy khớp chính xác các ký tự chiều rộng.
    S Đối sánh các ký tự không có khoảng trắng liên tiếp. Nếu chiều rộng được xác định, khớp chính xác các ký tự chiều rộng hoặc cho đến khi tìm thấy khoảng trắng đầu tiên.
    (bộ) Khớp một chuỗi ký tự không trống từ tập ký tự đã cho. Nếu xuất hiện ở đầu tập hợp, thì tất cả các ký tự không có trong tập hợp đều được so khớp.
    d Khớp với một số nguyên thập phân.
    Tôi Khớp với một số nguyên.
    o Khớp với một số nguyên bát phân không dấu.
    X hoặc x Khớp với một số nguyên thập lục phân không dấu.
    u Khớp với một số nguyên thập phân không có dấu.
    A hoặc a, E hoặc e, F hoặc f, G hoặc g Khớp với một số dấu phẩy động.
    n Trả về số ký tự đã đọc cho đến nay.
    p Khớp một chuỗi ký tự được xác định triển khai xác định một con trỏ.

    Vì vậy, định dạng chung của trình định dạng là:
     % (*) (width) (length) specifier
  • …: Các đối số bổ sung khác để nhận dữ liệu. Chúng xảy ra theo một trình tự theo trình định dạng.

wscanf () Giá trị trả về

  • Hàm wscanf () trả về số lượng đối số nhận được gán thành công.
  • Nếu lỗi xảy ra trước khi đối số nhận đầu tiên được chỉ định, thì EOF được trả về.

Ví dụ: Hàm wscanf () hoạt động như thế nào?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t ch; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Enter a wide character: "); wscanf(L"%lc",&ch); if (iswalnum(ch)) wcout << ch << L" is alphanumeric." << endl; else wcout << ch << L" is not alphanumeric." << endl; return 0; )

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

 Nhập một ký tự rộng: ∭ ∭ không phải là chữ và số.

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