Thứ Tư, 13 tháng 5, 2015

BT6


Tập tin tiêu đề <stdio.h>

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