Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Sscanf() in C có nghĩa là gì và được dùng như thế nào? Dưới đây là những điều bạn cần biết về sscanf c.
Đọc dữ liệu từ vị trí hiện tại của luồng được chỉ định vào các vị trí được chỉ định bởi các mục trong danh sách đối số, nếu có. Danh sách đối số, nếu tồn tại, sẽ theo chuỗi định dạng. Hàm fscanf() không thể được sử dụng cho tệp được mở với type=record hoặc type=blocked.
Hàm scanf() đọc dữ liệu từ luồng đầu vào chuẩn stdin vào các vị trí được chỉ định bởi mỗi mục trong danh sách đối số. Danh sách đối số, nếu tồn tại, sẽ theo chuỗi định dạng. Không thể sử dụng scanf() nếu stdin đã được mở lại dưới dạng tệp type=record hoặc type=blocked.
Hàm sscanf() đọc dữ liệu từ bộ đệm vào các vị trí được chỉ định bởi danh sách đối số. Việc đạt đến cuối chuỗi được trỏ đến bởi bộ đệm tương đương với việc fscanf() đạt đến EOF. Nếu các chuỗi được trỏ đến bởi bộ đệm và định dạng chồng lên nhau, hành vi sẽ không được xác định.
fscanf() và scanf() có cùng hạn chế như bất kỳ thao tác đọc nào đối với thao tác đọc ngay sau thao tác ghi hoặc thao tác ghi ngay sau thao tác đọc. Giữa một lần ghi và một lần đọc tiếp theo, phải có một lần xả hoặc tái định vị xen kẽ. Giữa một lần đọc và một lần ghi tiếp theo, cũng phải có một lần xả hoặc tái định vị xen kẽ, trừ khi đã đạt đến EOF.
Dưới đây là phần khai báo cho hàm sscanf() trong C:
int sscanf(const char *str, const char *format, ...)
Tham số
str -- Đây là chuỗi mà hàm xử lý nó như là source của nó để thu lấy dữ liệu.
format -- Đây là chuỗi chứa một trong các item sau: Ký tự Whitespace, ký tự Non-whitespace và Format specifier
Một format specifier sẽ là dạng: [=%[*][width][modifiers]type=]
| Tham số | Miêu tả |
|---|---|
| * | Đây là một dấu hoa thị bắt đầu (tùy ý) để chỉ rằng dữ liệu là được đọc từ Stream nhưng bị bỏ qua, ví dụ: nó không được lưu trữ trong tham số tương ứng |
| width | Xác định số ký tự tối đa được đọc trong hoạt động đọc hiện tại |
| modifiers | Xác định một kích cỡ khác với int (trong trường hợp d, I và n), unsigned int (trong trường hợp o,u và x) hoặc float (trong trường hợp e, f và g) cho dữ liệu được trỏ bởi tham số bổ sung tương ứng: h cho short int (cho d, i và n), hoặc unsigned short int (cho o, u và x); l cho long int (cho d, i và n), hoặc unsigned long int (cho o, u và x), hoặc double (cho e, f và g); L cho long double (cho e, f và g) |
| type | Một ký tự xác định kiểu dữ liệu được đọc và cách nó được mong đợi được đọc. Bạn theo dõi bảng tiếp theo |
Type specifier cho hàm fscanf
| Kiểu | Input | Kiểu tham số |
|---|---|---|
| c | Ký tự đơn: Đọc ký tự kế tiếp. Nếu một độ rộng khác 1 được xác định, thì hàm này đọc độ rộng các ký tự và lưu trữ chúng trong các vị trí liên tiếp nhau của mảng đã được truyền như là tham số. Không có ký tự null nào được phụ thêm vào cuối | char * |
| d | Số nguyên hệ thập phân: Số này tùy ý được đặt trước bởi một dấu + hoặc - | int * |
| e, E, f, g, G | Số thực dấu chấm động: Số thập phân chứa một dấu thập phân, được đặt trước tùy ý bởi một dấu + hoặc – và được theo sau tùy ý bởi ký tự e hoặc E và một số thập phân. Hai ví dụ hợp lệ là -732.103 và 7.12e4 | float * |
| o | Số nguyên hệ bát phân | int * |
| s | Chuỗi ký tự. Nó sẽ đọc các ký tự liên tiếp nhau tới khi tìm thấy một whitespace (có thể là blank, newline (dòng mới) và tab) | char * |
| u | Số nguyên hệ thập phân không dấu | unsigned int * |
| x, X | Số nguyên hệ thập lục phân | int * |
Các tham số khác -- Hàm này mong đợi một dãy con trỏ như là các tham số bổ sung, mỗi con trỏ chỉ tới một đối tượng có kiểu được xác định bởi %-tag tương ứng của chúng bên trong chuỗi định dạng format, trong cùng thứ tự.
Với mỗi format specifier trong chuỗi định dạng format mà thu nhận dữ liệu, một tham số bổ sung được xác định. Nếu bạn muốn lưu trữ kết quả của một hoạt động sscanf trên một biến thông thường, bạn nên đặt trước định danh identifier của nó với các toán tử tham chiếu, ví dụ: một dấu và (&), giống như: int n; sscanf (str,"%d",&n);
Trả về giá trị
Nếu thành công, hàm trả về số biến được điền. Trong trường hợp có một đầu vào thất bại tước khi bất cứ dữ liệu nào được đọc thành công, hàm trả về EOF.
Ví dụ
Chương trình C sau minh họa cách sử dụng của hàm sscanf() trong C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int day, year;
char weekday[20], month[20], dtm[100];
strcpy( dtm, "Tuesday July 12 2016" );
sscanf( dtm, "%s %s %d %d", weekday, month, &day, &year );
printf("%s %d, %d = %s\n", month, day, year, weekday );
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
![]()
Theo Tutorialspoint
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Xây dựng một workflow AI thực tế từ đầu đến cuối
Cách xuất nội dung ChatGPT sang Google Docs không mất định dạng
Đánh giá và cải thiện thói quen sử dụng AI
Perplexity AI là gì?
Cách kết nối Google Drive với ChatGPT
Meitu VIP vs Meitu SVIP: Nên lựa chọn gói chỉnh ảnh nào?
Tại sao Claude for Teachers lại tạo nên sự khác biệt?
Hướng dẫn dùng Higgsfield tạo video trên ChatGPT
Cách dùng NotebookLM trong Google Docs
Hướng dẫn dùng Dola AI tạo bảng dữ liệu từ câu lệnh
Chỉnh sửa kế hoạch giảng dạy do Claude for Teachers tạo dưới góc độ một biên tập viên
TOP công cụ AI tạo biểu mẫu và khảo sát
Chỉnh sửa nội dung giáo án do Claude for Teachers tạo
Tìm hiểu về các tính năng Home, Code và Autopilot mới trong Copilot
Hướng dẫn đăng ký tài khoản quảng cáo ChatGPT
Microsoft Frontier: Chương trình cho phép bạn trải nghiệm sớm các tính năng AI trước khi chúng được phát hành rộng rãi
OpenClaw là gì?
Hướng dẫn dùng Lovable AI trên ChatGPT tạo website cực nhanh
Học kỹ năng Mô tả: Hoàn thành prompt AI đầu tiên có thể sử dụng được
Tự tạo ứng dụng quản lý công việc trên Gemini rất đơn giản
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
8 ứng dụng Microsoft Store miễn phí giúp Windows tốt hơ
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
6 cách mở Computer/System Properties trong Windows 10
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows