Lập trình C: Định dạng, ký tự đặc biệt và bổ từ
I. Định dạng
Trong C, mỗi kiểu dữ liệu có một định dạng riêng.
Định dạng bao gồm ký hiệu % phía trước và mã định dạng nằm ngay phía sau.
Dưới đây là danh sách các định dạng và sự áp dụng của chúng cho các hàm printf() và scanf():
Kiểu dữ liệu |
printf() |
scanf() |
char: Ký tự đơn (single character) |
%c |
%c |
Chuỗi (string) |
%s |
%s |
int: Số nguyên có dấu (signed decimal integer) |
%d |
%d |
float: Dạng dấu chấm thập phân (decimal notation) |
%f |
%f hoặc %e |
double: Dạng dấu chấm thập phân |
%lf |
%lf |
float và double: Dạng lũy thừa (exponential notation) |
%e |
%f hoặc %e |
float và double: Hiển thị dạng thu gọn, bỏ đi những số 0 vô nghĩa |
%g |
|
unsign int: Số nguyên không dấu (unsigned decimal integer) |
%u |
%u |
int: Số nguyên hệ 16 không dấu - sử dụng “ABCDEF” (unsigned hexadecimal integer) |
%x hoặc %X |
%x |
int: Số nguyên hệ 8 không dấu (unsigned octal integer) |
%o |
%o |
int: Nhập liệu cho số nguyên hệ 8 và hệ 16 (xem chi tiết tại ĐÂY) | %i | %i |
long double | %Lf | %Lf |
II. Ký tự đặc biệt:
\n : xuống dòng. Dùng để in ra ký tự xuống dòng (ký tự Enter)
\t : tab. Dùng để in ra ký tự Tab
\" : ký tự nháy kép. Dùng để in ra ký từ nháy kép (")
\\ : xổ trái. Dùng để in ra ký tự xổ trái (\)
%% : dấu %. Dùng để in ra ký tự % (%)
III. Bổ từ trong C:
1. Bổ từ độ rộng trường: Dùng để xác định độ rộng (là số lượng ký tự dấu cách - space) để in ra dữ liệu, áp dụng cho tất cả các loại dữ liệu
2. Bổ từ độ chính xác: Dùng để để in ra số thực với độ chính xác tương ứng
3. Bổ từ - : Dùng để canh trái dữ liệu in ra
4. Bổ từ 0 : Dùng để thay thế cho những ký tự cách thừa bên trái
5. Bổ từ l : Dùng để xác định định dạng cho các dữ liệu kiểu long như long int
6. Bổ từ h : Dùng để xác định định dạng cho các dữ liệu kiểu short như short int
7. Bổ từ *: Nếu người dùng muốn chương trình xác định độ rộng trường thì bổ từ này được sử dụng. Cú pháp để sử dụng bổ từ * như sau: printf("%*Định_dạng", Độ_rộng_trường, Giá_trị_muốn_in); . Ví dụ như printf("[%*c]",5,'A'); có nghĩa là dành ra 5 khoảng để in ra ký tự 'A' trong cặp ngoặc vuông, tức là sẽ in ra [ A] .
Ví dụ:
#include <stdio.h> int main(){ printf("In so 555 theo cac dang khac nhau:\n"); printf("Khong co bo tu: \n"); printf("[%d]\n",555); //sẽ in ra [555] printf("Su dung bo tu -:\n"); printf("[%-d]\n",555); //sẽ in ra [555] printf("Dung bo tu do rong truong (do rong la 10):\n"); printf("[%10d]\n",555); //sẽ in ra [ 555] printf("Dung bo tu 0:\n"); printf("[%0d]\n",555); //sẽ in ra [555] printf("Dung ket hop bo tu 0 va bo tu do rong truong:\n"); printf("[%010d]\n",555); //sẽ in ra [0000000555] printf("Ket hop bo tu -, bo tu 0 va bo tu do rong truong:\n"); printf("[%-010d]\n",555); //sẽ in ra [555] printf("Su dung bo tu *:\n"); printf("[%*d]\n",10,555); //sẽ in ra [ 555] return 0; }