Khóa học c

Output trong C

0 phút đọc

Chúng ta đã được xem qua cách hiển thị một đoạn văn bản với hàm printf() ở những bài trước.

Trong ngôn ngữ lập trình C, chúng ta sử dụng hàm printf() để xuất dữ liệu, bao gồm ký tự, chuỗi văn bản, giá trị số nguyên, số thực, hệ cơ số khác nhau và nhiều loại dữ liệu khác ra màn hình.

Hôm nay chúng ta sẽ cùng tìm hiểu kỹ hơn về hàm printf().

Hiển thị chuỗi output trong output

Để xuất một chuỗi văn bản trong C, bạn chỉ cần truyền chuỗi văn bản vào hàm printf() như ví dụ sau:

#include <stdio.h>

int main() {

    printf ("I am student.");
}

Lưu ý: chuỗi văn bản cần phải được nằm trong cặp dấu nháy kép " " để chương trình hiểu được đó là một chuỗi văn bản bình thường.

Kết quả

I am student.

Nếu bạn cần phải sử dụng các ký tự không thể gõ hoặc có ý nghĩa đặc biệt Escape Sequences.

Hiển thị giá trị biến trong output

Bây giờ, chúng ta sẽ xem làm sao để hiển thị một giá trị của biến cùng với hàm này. Chúng ta cũng sẽ sử dụng printf() với phương pháp cũ, nhưng thêm vào một định dạng đặc biệt tại vị trí mà chúng ta muốn hiển thị giá trị của biến đó.

Vậy định dạng đặc biệt đó là gì?

  • Chúng ta sử dụng hàm printf() với định dạng %d để hiển thị giá trị của biến kiểu số nguyên int.
  • Tương tự, sử dụng %c để hiển thị giá trị của các biến kiểu ký tự, %f để hiển thị giá trị số thực và %x cho kiểu số ở hệ thập lục phân (hệ cơ số 16).

Vì vậy ứng với mỗi kiểu dữ liệu, chúng ta sẽ có ký tự đặc biệt của kiểu dữ liệu đó, dưới đây là bảng các kiểu dữ liệu thường dùng và định dạng của nó.

Định dạng Kiểu dữ liệu
%d int
%ld long
%f float
%lf double
%c char

Chúng ta đã chỉ ra vị trí cần hiển thị một biến, nhưng chúng ta vẫn chưa nói là hiển thị giá trị của biến nào - biến tên là gì. Vì thể chúng ta cần chỉ cho hàm printf() biết phải hiển thị biến nào.

Hãy xem ví dụ sau:

#include<stdio.h>

int main() {

    int age = 22;
    printf ("I am %d years old.", age); // giá trị của biến age sẽ được thay thế vào vị trí %d
}

Kết quả

I am 22 years old.

Chúng ta cũng xem tiếp một ví dụ khác:

#include<stdio.h>

int main() {

    int age = 22;
    age = 25;

    printf ("I am %d years old.", age); // giá trị của biến age sẽ được thay thế vào vị trí %d
}

Kết quả

I am 25 years old.

Ở ví dụ này, tuy bạn đã khai báo và gán giá trị cho biến age = 22 nhưng ngay dòng tiếp theo chúng ta lại gán lại age = 25 - vì vậy lúc này giá trị của biến age sẽ bị ghi đè và mang giá trị mới.

Định dạng cách hiển thị giá trị của biến

Nếu chúng ta thực hiện in ra giá trị một số thập phân, bạn sẽ thấy như sau:

#include<stdio.h>

int main() {

    float a = 2.5;

    printf ("a = %f", a);
}

Kết quả

a = 2.500000

a là một số thập phân nên khi hiển thị ra kết quả, chương trình sẽ hiển thị thêm 6 số sau dấu phẩy để người dùng hiểu được đó là số thập phân. Nhưng đôi lúc chúng ta lại nhận được yêu cầu chỉ hiển thị 2 hoặc 3 số sau dấu chấm động thôi. Ví dụ a = 2.50 hay a = 2.500.

Vậy chúng ta sẽ làm như thế nào? Hãy xem qua ví dụ sau:

#include<stdio.h>

int main() {

    float a = 2.5;

    printf ("a = %.2f\n", a); // hiển thị 2 số sau dấu thập phân
    printf ("a = %0.3f", a);  // hiển thị 3 số sau dấu thập phân
}

Kết quả

a = 2.50
a = 2.500

Các bạn có thấy chúng ta đã chỉnh sửa thêm gì không? đó là trong %f chúng ta viết thêm số lượng số thập phân mà chúng ta muốn hiển thị sau dấu phẩy %.2f hoặc %0.3f.

Trong lập trình nếu một số thập phân bắt đầu bằng chữ số 0, bạn có thể bỏ số 0 đi cho ngắn gọn, chúng ta có viết 0.2 bằng .2.

Chúng ta cũng có thể viết số lượng hiển thị mong muốn ở trước dấu phẩy để căn chỉnh hiển thị nhiều số cho dễ nhìn hơn.

Ví dụ:

#include<stdio.h>

int main() {

    float a = 2.5;
    float b = 3.75;
    float c = 5.66;

    printf ("%8.2f", a);
    printf ("%8.2f", b);
    printf ("%8.2f", c);
}

Kết quả

2.50 3.75 5.66

Lúc này tổng chiều dài hiển thì cho mỗi số là 8 ký tự (đã tính cả dấu .2 số sau dấu .). Xem hình minh hoạ để hiểu rõ hơn:

Output trong C

Đối với các kiểu dữ liệu khác, bạn cũng sẽ làm tương tự như ví dụ trên.

Ví dụ:

  • %5d
  • %5.2lf
  • %3c
Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Dữ liệu được lưu trữ trong container sẽ bị mất trong những trường hợp nào?

entry

Tầm quan trọng của việc tạo mẫu trong thiết kế là gì?

entry

Các thành phần chính trong Microservices?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào