[C]. Printf Và Scanf – Nhập Xuất Dữ Liệu

ảnh main

Xuất Dữ Liệu Với Hàm Printf

Để hiển thị dữ liệu, chuỗi ký tự hoặc số lên màn hình, chúng ta sử dụng hàm printf trong thư viện stdio.h.

Cú pháp: printf("Chuỗi định dạng", Đối số);

Trong đó:

  • Chuỗi định dạng có thể là nội dung của một chuỗi ký tự hoặc đặc tả kiểu dữ liệu của biến mà bạn muốn in ra màn hình.
  • Đối số: Đây là các biến mà bạn muốn in ra. Số lượng đối số phải bằng số lượng đặc tả trong chuỗi định dạng.

Khi in ra giá trị của các biến số, bạn cần sử dụng đặc tả đúng và sử dụng kí tự "n" khi muốn xuống dòng.

Ví dụ 1: In ra các biến thuộc các kiểu dữ liệu thường gặp

#include 
int main(){
    printf("28tech.com.vnn");
    int n = 28;
    printf("Gia tri cua n la : %dn", n);
    long long m = 28282828282828;
    printf("Gia tri cua m la : %lldn", m);
    char kitu = '@';
    printf("Gia tri cua kitu la : %cn", kitu);
    return 0;
}

Output: 
28tech.com.vnn
Gia tri cua n la : 28
Gia tri cua m la : 28282828282828
Gia tri cua kitu la : @

Ví dụ 2: In ra nhiều biến sử dụng 1 câu lệnh printf

#include 
int main(){
    int n = 20, m = 30;
    long long p = 28282828282828;
    char kitu = '@';
    printf("%d %d %lld %cn", n, m, p, kitu);
    return 0;
}

Output: 
20 30 28282828282828 @

Ví dụ 3: In ra nhiều biến sử dụng 1 câu lệnh printf, giữa các biến in ra có 2 dấu gạch giữa

#include 
int main(){
    int a = 100, b = 200, c = 300;
    printf("%d-%d-%d KET THUC !!!n", a, b, c);
    return 0;
}

Output: 
100-200-300 KET THUC !!!

Chú ý: Khi in ra giá trị của số thực float và double, đề bài thường yêu cầu in ra kết quả với một số chữ số phần thập phân. Đặc tả của float là %f và của double là %lf. Để in ra x chữ số sau dấu phẩy với float và double, ta sử dụng đặc tả %.xf hoặc %.xlf.

Ví dụ 4: In ra số thực với độ chính xác yêu cầu

#include 
int main(){
    float a = 3.141232;
    double b = 10.91293182472173;
    printf("In ra a với 2 chữ số sau dấu phẩy : %.2fn", a);
    printf("In ra b với 10 chữ số sau dấu phẩy : %.10lfn", b);
    return 0;
}

Output: 
In ra a với 2 chữ số sau dấu phẩy : 3.14
In ra b với 10 chữ số sau dấu phẩy : 10.9129318247

## Nhập Dữ Liệu Với Hàm Scanf

Hàm `scanf` giúp bạn gán giá trị cho biến từ bàn phím khi chạy chương trình. Bạn có thể yêu cầu người dùng nhập giá trị cho biến thay vì gán thủ công.

Cú pháp: `scanf("Đặc tả", &biến);`

Khi bạn nhập giá trị cho một biến từ bàn phím, bạn cần truyền đặc tả của nó vào phần chuỗi định dạng, kèm theo dấu `&` trước tên biến. Dấu `&` này thể hiện địa chỉ của biến trong bộ nhớ. Mỗi khi bạn nhập giá trị cho biến từ bàn phím, hàm `scanf` sẽ gán giá trị đó vào địa chỉ của biến trong bộ nhớ.

### Ví dụ 1: Nhập giá trị cho một biến

```c
#include 
int main(){
    int n;
    printf("Nhap n : ");
    scanf("%d", &n);
    printf("Gia tri n vua nhap : %dn", n);
    return 0;
}

Ví dụ 2: Nhập giá trị cho nhiều biến sử dụng nhiều lệnh scanf

#include 
int main(){
    int a, b, c;
    printf("Nhap a : ");
    scanf("%d", &a);
    printf("Nhap b : ");
    scanf("%d", &b);
    printf("Nhap c : ");
    scanf("%d", &c);
    printf("a = %d, b = %d, c = %dn", a, b, c);
    return 0;
}

Ví dụ 3: Nhập giá trị cho nhiều biến sử dụng một lệnh scanf, giữa các biến có 2 dấu cách

#include 
int main(){
    int a, b;
    long long c;
    printf("Nhap a, b, c : ");
    scanf("%d %d %lld", &a, &b, &c);
    printf("a = %d, b = %d, c = %lldn", a, b, c);
    return 0;
}

Chú Ý Khi Nhập Một Ký Tự

Để nhập một ký tự từ bàn phím, bạn có thể sử dụng hàm scanf hoặc getchar().

Ví dụ 1: Nhập một ký tự sử dụng hàm scanf

#include 
int main(){
    char kitu;
    printf("Nhap ki tu : ");
    scanf("%c", &kitu);
    printf("Ki tu vua nhap : %cn", kitu);
    return 0;
}

Ví dụ 2: Nhập một ký tự dùng hàm getchar()

#include 
int main(){
    char kitu;
    printf("Nhap ki tu : ");
    kitu = getchar();
    printf("Ki tu vua nhap : %cn", kitu);
    return 0;
}

Ví dụ 3: Nhập một số sau đó nhập một ký tự

Trong trường hợp này, sau khi nhập số, bạn cần xử lý ký tự enter.

#include 
int main(){
    int n;
    scanf("%d", &n);
    char kitu;
    scanf("%c", &kitu);
    printf("Số vừa nhập : %dn", n);
    printf("Ký tự vừa nhập : %cn", kitu);
    return 0;
}

Xử lý như sau:

#include 
int main(){
    int n;
    scanf("%d", &n);
    char kitu;
    getchar(); // Đọc ký tự enter sau n
    scanf("%c", &kitu);
    printf("Số vừa nhập : %dn", n);
    printf("Ký tự vừa nhập : %cn", kitu);
    return 0;
}

Kết Luận

Hãy thực hành thật nhiều với hàm printfscanf để nhanh chóng thuần thục các đặc tả của các kiểu dữ liệu thường gặp.

Xem thêm bài giảng về Printf Và Scanf: link_video

FEATURED TOPIC