Hàm fscanf() trong C
Hàm int fscanf(FILE *stream, const char *format,...) trong Thư viện C chuẩn đọc input đã được định dạng từ một Stream.
Khai báo hàm fscanf() trong C
Dưới đây là phần khai báo cho hàm fscanf() trong C:
int fscanf(FILE *stream, const char *format, ...)
Tham số
stream − Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream.
format − Đây là chuỗi mà chứa một hoặc nhiều mục sau: ký tự Whitespace, ký tự Non-whitespace và Format specifier. Một format specifier sẽ là dạng [=%[*][width][modifiers]type=], được giải thích như sau:
| 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ố bổ sung -- Phụ thuộc vào chuỗi định dạng format, hàm này có thể có một dãy tham số bổ sung, mỗi tham số chứa một giá trị để được chèn thay cho mỗi %-tag được xác định trong tham số format, nếu có. Số tham số này nên cùng số lượng với số %-tags mà mong chờ một giá trị.
Trả về giá trị
Hàm này trả về số mục đầu vào được kết nối và gán thành công hoặc 0 nếu kết nối thất bại.
Ví dụ
Chương trình C sau minh họa cách sử dụng của hàm fscanf() trong C:
#include <stdio.h> #include <stdlib.h> int main() { char str1[10], str2[10], str3[10]; int year; FILE * fp; fp = fopen ("baitapc.txt", "w+"); fputs("Toi sinh nam 2016", fp); rewind(fp); fscanf(fp, "%s %s %s %d", str1, str2, str3, &year); printf("Doc chuoi 1: |%s|\n", str1 ); printf("Doc chuoi 2: |%s|\n", str2 ); printf("Doc chuoi 3: |%s|\n", str3 ); printf("Doc so nguyen: |%d|\n", year ); fclose(fp); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Theo Tutorialspoint
Bài trước: Hàm vsprintf() trong C
Bài tiếp: Hàm scanf() trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Card đồ họa không hoạt động: Nguyên nhân và cách khắc phục
Hôm qua -

Hướng dẫn sửa nhanh lỗi "Inaccessible Boot Device" trên Windows
Hôm qua -

Cách tạo USB boot đa năng, USB cứu hộ bằng DLC Boot
Hôm qua -

Cách đổi DNS trên điện thoại iPhone, Android
Hôm qua 2 -

Hướng dẫn cách xem lực chiến Liên Quân Mobile
Hôm qua -

Cách lặp lại tiêu đề trong Excel rất đơn giản
Hôm qua 2 -

Cách bật tự động gửi ảnh HD trên Zalo
Hôm qua -

4 cách tạo trang bìa trong Google Docs rất đơn giản
Hôm qua -

Cách sửa lỗi IRQL NOT LESS OR EQUAL trên Windows
Hôm qua -

Thủ thuật tiến hóa Eevee thành bất cứ loại Pokemon nào trong Pokémon Go
Hôm qua
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy