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à khn 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 tố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