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

Hàm scanf () trong C ++ được sử dụng để đọc dữ liệu từ stdin.

nguyên mẫu scanf ()

 int scanf (const char * format,…);

Các scanf()chức năng đọc dữ liệu từ stdinvà lưu trữ các giá trị vào các biến tương ứng.

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

thông số scanf ()

  • format: Con trỏ đến 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:

    • Non whitespace charactersngoại trừ% mỗi trong số đó 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.
    • Whitespace character: 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.
    • Conversion specification: 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 hiện diện, scanf () 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ố ký tự tối đa mà scanf () đượ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 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.

scanf () Giá trị trả về

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

Ví dụ: Cách hoạt động của hàm scanf ()

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

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

 Xin chào Tim, Bạn 31 tuổi

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