×

Đọc dữ liệu đầu vào từ người dùng với hàm scanf() trong C

Trong ngôn ngữ lập trình C, việc đọc dữ liệu từ người dùng là một thao tác không thể thiếu, phục vụ cho nhiều ứng dụng khác nhau từ đơn giản đến phức tạp. Hàm scanf() là một trong những công cụ hữu ích giúp lập trình viên thực hiện nhiệm vụ này. Bài viết này sẽ giúp bạn hiểu rõ hơn về cách sử dụng hàm này để đọc dữ liệu từ người dùng.

Cấu Trúc Cơ Bản

Hàm scanf() có cú pháp cơ bản như sau:

int scanf(const char *format, ...);

Trong đó:

  • format là một chuỗi định dạng chỉ ra cách hàm scanf() sẽ phân tích và nhận dữ liệu.
  • Các tham số khác (được dấu ... biểu diễn) là địa chỉ của các biến nơi dữ liệu sẽ được lưu trữ.

Các Ký Hiệu Định Dạng Phổ Biến

Một số ký hiệu định dạng phổ biến dành cho scanf() bao gồm:

  • %d : Số nguyên thập phân
  • %f : Số thực dạng float
  • %lf: Số thực dạng double
  • %c : Ký tự
  • %s : Chuỗi

Ví Dụ Cụ Thể

Dưới đây là một vài ví dụ để minh họa cách sử dụng scanf().

Đọc Số Nguyên

Để đọc một số nguyên từ người dùng, bạn có thể sử dụng ký hiệu định dạng %d.

#include <stdio.h>

int main() {
    int number;
    printf("Nhập một số nguyên: ");
    scanf("%d", &number);
    printf("Bạn đã nhập số: %d\n", number);
    return 0;
}

Đọc Số Thực

Nếu bạn muốn đọc một số thực, bạn có thể sử dụng ký hiệu định dạng %f hoặc %lf tuỳ thuộc vào kiểu dữ liệu.

#include <stdio.h>

int main() {
    float number;
    printf("Nhập một số thực: ");
    scanf("%f", &number);
    printf("Bạn đã nhập số: %f\n", number);
    return 0;
}

Đọc Ký Tự

Để đọc một ký tự, bạn sử dụng %c.

#include <stdio.h>

int main() {
    char letter;
    printf("Nhập một ký tự: ");
    scanf("%c", &letter);
    printf("Bạn đã nhập ký tự: %c\n", letter);
    return 0;
}

Đọc Chuỗi

Đối với chuỗi, sử dụng %s. Lưu ý là bạn cần một mảng đủ lớn để lưu chuỗi.

#include <stdio.h>

int main() {
    char str[100];
    printf("Nhập một chuỗi: ");
    scanf("%s", str);
    printf("Bạn đã nhập chuỗi: %s\n", str);
    return 0;
}

Một Số Lưu Ý

  1. Địa Chỉ Biến: Với scanf(), bạn luôn phải truyền địa chỉ của biến để dữ liệu có thể được lưu vào đúng vị trí trong bộ nhớ.
  2. Dấu &: Trong trường hợp biến kiểu mảng, bạn không cần dấu & vì tên mảng đã là địa chỉ của phần tử đầu tiên.
  3. Kiểm Tra Giá Trị Đầu Vào: scanf() trả về số lượng biến được gán thành công. Bạn có thể sử dụng dữ liệu này để kiểm tra việc nhập liệu có chính xác hay không.
int result = scanf("%d", &number);
if (result != 1) {
    printf("Lỗi: không nhập đúng số nguyên.\n");
}

Kết Luận

Hàm scanf() là một công cụ mạnh mẽ và linh hoạt để đọc dữ liệu từ người dùng trong ngôn ngữ lập trình C. Bằng việc nắm vững các ký hiệu định dạng và hiểu cách hàm này hoạt động, lập trình viên có thể dễ dàng thao tác với dữ liệu đầu vào, phục vụ cho nhiều mục đích xử lý trong chương trình.

Comments