Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Scanf() trong C là gì? Dưới đây là mọi điều bạn cần nắm được để biết scanf() trong C để làm gì?
Lập trình ngày càng phát triển theo nhu cầu của thời đại và hiện đang trở thành ngành “hot” trên toàn thế giới. Nếu cũng quan tâm tới lĩnh vực này, ắt hẳn bạn đã biết hiện có rất nhiều ngôn ngữ lập trình khác nhau, nổi bật trong số đó là C - một ngôn ngữ lập trình nhỏ gọn, vận hành gần giống phần cứng.
Học lập trình bằng C không khó. Bạn có thể theo dõi từng bài học trên Quantrimang.com. Ở phần này, hãy cùng nhau tìm hiểu về Scanf() trong C là gì nhé!
Hàm int scanf(const char *format,...) trong Thư viện C chuẩn đọc input đã được định dạng từ stdin.
Hàm scanf không chấp nhận khoảng trống giữa hai chuỗi (khác với hàm gets()), tức là bạn chỉ có thể nhập một chuỗi liền nhau, nếu bạn nhập cả phần khoảng trống thì phần nội dung sau khoảng trống đầu tiên sẽ không được chấp nhận.
Dưới đây là phần khai báo cho hàm scanf() trong C:
int scanf(const char *format, ...)
Tham số
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=], đượ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 |
| 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ị
Nếu thành công, tổng số ký tự đã được ghi sẽ được trả về, nếu thất bại thì trả về một số âm.
Ví dụ
Trong ví dụ sau, mình có nhập khoảng trống trong phần số điện thoại và ngày sinh, và bạn theo dõi phần hiển thị kết quả để thấy rằng lệnh scanf không chấp nhận khoảng trống.
Chương trình C sau minh họa cách sử dụng của hàm scanf() trong C:
#include <stdio.h>
int main()
{
char str1[20], str2[30];
printf("Nhap ten: ");
scanf("%s", &str1);
printf("Nhap so dien thoai va ngay sinh: ");
scanf("%s", &str2);
printf("Ten vua nhap: %s\n", str1);
printf("So dien thoai va ngay sinh vua nhap: %s", str2);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Scanf()
scanf(const char *format, …).Fscanf()
fscanf(FILE *stream, const char *format, …).#include <stdio.h>.Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
7 công cụ AI mã nguồn mở có thể thay thế các gói đăng ký trả phí
Hướng dẫn tìm địa điểm bằng bản đồ trên Gemini
Cách dùng plugin Gmail trong ChatGPT để chuẩn bị nháp email
13 công cụ AI tốt nhất để tạo tác phẩm nghệ thuật từ một bức ảnh chụp
Hướng dẫn dọn dẹp và quản lý Gmail bằng Gemini
TOP công cụ AI chỉnh sửa ảnh theo từng nhu cầu
5 cách khai thác Gemini với Google Workspace và NotebookLM
TOP Claude Connector tốt nhất cho hoạt động bán hàng
4 lựa chọn thay thế tốt nhất cho Midjourney
Hướng dẫn tạo bài thuyết trình bằng AI trên NoteGPT
8 mẹo hạn chế Claude vượt quá giới hạn lượt dùng
8 mẹo hạn chế Claude vượt quá giới hạn lượt dùng
Cách sử dụng công cụ chỉnh sửa ảnh ưu việt trên ChatGPT
Cách dùng AI Agent Consensus tóm tắt tài liệu dài trên ChatGPT
Cách tạo tài liệu bằng AI trên NoteGPT
10 công cụ tạo website AI tốt nhất năm 2026
Ứng dụng Copilot trong Excel
10 mô hình Hugging Face đáng tìm hiểu vào năm 2026
Hướng dẫn tạo dashboard dữ liệu bằng Claude Dashboards
Cách dùng Claude Motion biến ý tưởng thành video chuyển động
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
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
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
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
6 cách mở Computer/System Properties trong Windows 10
Cách sửa lỗi There Are Currently No Power Options Available Windows
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10