Trong các ví dụ trước, ta đã từng viết dòng mã sau:
#include <stdio.h>
Ðây là lệnh tiền xử lý (preprocessor command). Trong C chuẩn, ký hiệu # nên đặt tại cột đầu
tiên. stdio.h là một tập tin và được gọi là tập tin tiêu đề (header). Nó chứa các macro cho nhiều
hàm nhập và xuất được dùng trong C. Hàm printf(), scanf(), putchar() và getchar() được thiết kế theo
cách gọi các macro trong tập tin stdio.h để thực thi các công việc tương ứng.
*Nhập và xuất trong C (Input and Output)
Thư viện chuẩn trong C cung cấp hai hàm để thực hiện các yêu cầu nhập và xuất có định dạng. Chúng
printf() – Hàm xuất có định dạng.
scanf() – Hàm nhập có định dạng.
*printf()
Ký tự văn bản (Text characters) – Bao gồm các ký tự có thể in ra được và sẽ được in giống như
ta nhìn thấy. Các khoảng trắng thường được dùng trong việc phân chia các trường (field) được
xuất ra.Lệnh định dạng - Định nghĩa cách thức các mục dữ liệu trong danh sách tham số sẽ được hiển
thị. Một lệnh định dạng bắt đầu với một ký hiệu % và theo sau là một mã định dạng tương ứng cho
mục dữ liệu. Dấu % được dùng trong hàm printf() để chỉ ra các đặc tả chuyển đổi. Các lệnh định
dạng và các mục dữ liệu tương thích nhau theo thứ tự và kiểu từ trái sang phải. Một mã định dạng
thì cần thiết cho mọi mục dữ liệu cần in ra.
Các ký tự không in được – Bao gồm phím tab, dấu khoảng trắng và dấu xuống dòng.
Mỗi lệnh định dạng gồm một hay nhiều mã định dạng. Một mã định dạng bao gồm ký hiệu % và một
bộ định kiểu. Bảng 6.1 liệt kê các mã định dạng khác nhau được hỗ trợ bởi câu lệnh printf():
Ðịnh dạng printf() scanf()
Ký tự đơn (Single Character) %c %c
Chuỗi (String) %s %s
Số nguyên có dấu (Signed decimal integer) %d %d
Số thập phân có dấu chấm động (Floating point) %f %f hoặc %e
Số thập phân có dấu chấm động - Biểu diễn phần thập phân %lf %lf
Số thập phân có dấu chấm động - Biểu diễn dạng số mũ %e %f hoặc %e
Số thập phân có dấu chấm động (%f hoặc %e, con số nào ít hơn) %g
Số nguyên không dấu (Unsigned decimal integer) %u %u
Số thập lục phân không dấu (Dùng “ABCDEF”)
(Unsigned hexadecimal integer)
Số bát phân không dấu (Unsigned octal integer) %o %o
%x %x
*Bổ từ (Modifier) cho các lệnh định dạng trong printf()
Các lệnh định dạng có thể có bổ từ (modifier), để thay đổi các đặc tả chuyển đổi gốc. Sau đây là các
bổ từ được chấp nhận trong câu lệnh printf(). Nếu có nhiều bổ từ được dùng thì chúng tuân theo trình
tự sau :
Bổ từ ‘-‘
Dữ liệu sẽ được canh trái bên trong không gian dành cho nó, chúng sẽ được in bắt đầu từ vị trí ngoài
cùng bên trái.
Bổ từ xác định độ rộng
Chúng có thể được dùng với kiểu: float, double hay char array (chuỗi-string). Bổ từ xác định độ rộng
là một số nguyên xác định độ rộng nhỏ nhất của trường dữ liệu. Các dữ liệu có độ rộng nhỏ hơn sẽ cho
kết quả canh phải trong trường dữ liệu. Các dữ liệu có kích thước lớn hơn sẽ được in bằng cách dùng
thêm những vị trí cho đủ yêu cầu.Ví dụ, %10f là lệnh định dạng cho các mục dữ liệu kiểu số thực với
độ rộng trường dữ liệu thấp nhất là 10.
Bổ từ xác định độ chính xác
Chúng có thể được dùng với kiểu float, double hay mảng ký tự (char array, string). Bổ từ xác định độ
rộng chính xác được viết dưới dạng .m với m là một số nguyên. Nếu sử dụng với kiểu float và double,
chuỗi số chỉ ra số con số tối đa có thể được in ra phía bên phải dấu chấm thập phân.
Bổ từ ‘0’
Bổ từ ‘l’
Bổ từ ‘h’
Bổ từ ‘*’
*Sự khác nhau trong danh sách tham số giữa printf() và scanf()
Hàm printf() dùng các tên biến, hằng số, hằng chuỗi và các biểu thức, nhưng scanf() sử dụng những
con trỏ tới các biến. Một con trỏ tới một biến là một mục dữ liệu chứa đựng địa chỉ của nơi mà biến
được cất giữ trong bộ nhớ. Những con trỏ sẽ được bàn luận chi tiết ở chương sau. Khi sử dụng scanf()
cần tuân theo những quy tắc cho danh sách tham số:
Nếu ta muốn nhập giá trị cho một biến có kiểu dữ liệu cơ bản, gõ vào tên biến cùng với ký
hiệu & trước nó.
Khi nhập giá trị cho một biến thuộc kiểu dữ liệu dẫn xuất (không phải thuộc bốn kiểu cơ bản
char, int, float, double), không sử dụng & trước tên biến.
Sự khác nhau trong lệnh định dạng giữa printf() và scanf()
1. Không có tùy chọn %g.
2. Mã định dạng %f và %e có cùng hiệu quả tác động. Cả hai nhận một ký hiệu tùy chọn, một chuỗi
các con số có hay không có dấu chấm thập phân và một trường số mũ tùy chọn.
*putchar()
putchar() là hàm xuất ký tự trong C, nó sẽ xuất một ký tự lên màn hình tại vị trí con trỏ màn hình.
Hàm này yêu cầu một tham số. Tham số của hàm putchar() có thể thuộc các loại sau:
Hằng ký tự đơn
Ðịnh dạng (Escape sequence)
Một biến ký tự.
VD:
Không có nhận xét nào:
Đăng nhận xét