KỸ THUẬT LẬP TRÌNH C
Chương 2: Lệnh nhập / xuất
04/2010
Xuất dữ liệu, hàm: printf
• Thuộc thư viện “stdio.h”
• Cú pháp:
printf(“Xâu điều khiển”,[danh sách tham số]);
• Ví dụ:
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
2
04/2010
Hàm printf
• Xâu ñiều khiển bao gồm 3 loại kí tự
– Các kí tự ñiều khiển
• \n
• \f
• \b
• \t
sang dòng mới
sang trang mới
xóa kí tự bên trái
dấu Tab
– Các kí tự ñể ñưa ra màn hình
– Các kí tự ñịnh dạng và khuôn in
• Công thức định dạng:
%[-][w][.p]Kt
• w = wide(độ rộng); p = precise(độ chính xác); Kt =
Ký tự chuyển dạng (dạng hiển thị). Dấu trừ sẽ quy
định canh lề trái thay vì canh lề phải
• Ví dụ: %.2f
%8d
%s
%-5c
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
3
04/2010
Hàm printf
• Các ký tự chuyển dạng thường dùng
Ký tự
Ý nghĩa
c
In ra ở dạng ký tự char
d
In ra ở dạng số nguyên int
u
In ra ở dạng số nguyên unsigned int
ld
In ra ở dạng số nguyên long
lu
In ra ở dạng số nguyên unsigned long
f
In ra ở dạng số thực float
s
In ra ở dạng xâu ký tự
x
In ra ở dạng số nguyên hệ 16 (hecxa)
o
In ra ở dạng số nguyên hệ 8
e, E
In ra rở dạng khoa học
g, G
In ra ở dạng số thực (bỏ các số 0 vô nghĩa)
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
4
04/2010
Hàm printf
• Ví dụ
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
5
04/2010
Hàm printf
• In các ký tự ñặc biệt
• Công thức định dạng
%[-][w][.p]Kt
– W: wide (độ rộng)
– P: precse (độ chính xác)
– Kt: Ký tự chuyển dạng
• Giá trị của w
Viết
Ý nghĩa
\’
In ký tự dấu nháy đơn (‘)
\”
In ký tự dấu nháy kép (“)
\\
In ký tự backslash (\)
\t
In ký tự Tab
\b
In lùi 1 vị trí
\n
In xuống dòng mới
– Nhỏ hơn hoặc bằng độ rộng thực tế
in bình thường
– Lớn hơn độ rộng thực tế (chèn thêm khoảng trống cho đủ
độ rộng là w (nếu có dấu trừ chèn bên phải, ngược lại
chèn bên trái)
• Giá trị p: quy ñịnh làm tròn đến bao nhiêu chữ số
đằng sau chấm thập phân.
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
6
04/2010
Hàm puts
• Thư viện: “conio.h”
• Công dụng: in ra màn hình 1 xâu ký tự
• Ví dụ:
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
7
04/2010
Hàm sprintf
• Thư viện: “stdio.h”
• Công dụng: giống printf, chỉ khác ở ñiểm kết quả
không xuất ra màn hình mà ñưa vào 1 biến xâu.
• Ví dụ:
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
8
04/2010
Nhập dữ liệu, hàm: scanf
• Thuộc thư viện “stdio.h”
• Cú pháp:
scanf(“Xâu điều khiển”,[DS tham số]);
– Xâu điều khiển: Cho phép định dạng dữ liệu nhập vào
– Danh sách tham số: Là ñịa chỉ các biến cần nhập liệu
• Sử dụng toán tử & ñể xác định địa chỉ các biến
• Ví dụ:
scanf(“%d%f%c”, &x, &y, &z);
scanf(“%s”, &hoten);
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
9
04/2010
Hàm scanf
• Không thông báo cho
người dùng biết giá trị
cần nhập là giá trị gì?
phải kết hợp với
lệnh xuất dữ liệu
• Không nhận được
xâu có dấu cách trống
• Không xóa ký tự thừa
trong bộ ñệm
ảnh
hưởng tới lện nhập
phía sau.
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
10
04/2010
Sử dụng fflush sau scanf
Công d ng:
xóa những ký tự
thừa còn dư lại
trong bộ ñệm của
scanf
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
11
04/2010
Kết hợp nhập và xuất dữ liệu
Kết quả
chương
trình ?
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
12
04/2010
Hàm gets
• Thư viện: “conio.h”
• Công dụng: nhập vào 1 xâu ký tự
• Ví dụ:
Liệu có dùng
gets nhập 1 số
không?
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
13
04/2010
Một số hàm nhập/xuất dữ liệu khác
Hàm
Ý nghĩa
int getch()
đợi nhập 1 ký tự từ bàn phím (không hiển thị ở màn hình)
int getche() giống getch() nhưng hiển thị ở màn hình
int putch()
In ra màn hình 1 ký tự
int kbhit()
Kiểm tra xem có 1 phím bị nhấn không?
cprintf()
Giống printf nhưng có màu sắc
gotoxy(x, y) chuyển tới vị trí (cột x, hàng y)
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
14
04/2010
Màu sắc khi xuất dữ liệu
• Đặt màu nền
textbackground(màu nền)
• Đặt màu chữ
textcolor(màu chữ)
Hằng màu
Giá trị
ý nghĩa
BLACK
0
Đen
BLUE
1
Xanh dương
GREEN
2
Xanh lá
CYAN
3
Xanh ngọc
RED
4
Đỏ
MAGENTA
5
Tím
BROWN
6
Nâu
LIGHTGRAY
7
Xám
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
15
04/2010
Một vài ví dụ nhập/xuất dữ liệu
1.
Viết chương trình cho nhập các hệ số của phương trình bậc nhất 1 ẩn
ax+b=0 (với a≠0) hãy in ra màn hình nghiệm của phương trình đã
cho.
2.
Viết chương trình hiển thị ra màn hình số tiền phải trả cho 1 cuộc gọi
điện thoại N giây. Biết rằng cước gọi tính theo mỗi block là xñ, và 1
block bằng 6 giây. Các giá trị x, N nhập từ bàn phím.
3.
Viết chương trình nhập tọa độ của 3 ñiểm A, B, C trên mặt phẳng.
Tính và in ra màn hình chu vi, diện tích của tam giác ABC.
4.
Viết chương trình nhập họ tên, hệ số lương của 1 nhân viên. Tính và
in ra màn hình lương còn lĩnh của nhân viên đó sau khi trừ ñi các
khoản: BHYT 1.5%, BH thất nghiệp 1% và ðảng phí 1%
5.
Viết chương trình hiện ra màn hình thể tích của tứ diện ABCD biết
rằng A, B, C có tọa độ nhập từ bàn phím (XA, YA) (XB, YB) (XC, YC) và
chiều cao từ ñỉnh D xuống mặt phẳng ABC là h
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
16
04/2010
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
17
04/2010
Kỹ thuật lập trình C - Nhập/xuất dữ liệu
18