You are on page 1of 40

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN

VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ

CHƯƠNG 4
VÀO RA DỮ LIỆU TRONG C
MỤC TIÊU

❖ Hiểu, vận dụng tốt các hàm xuất dữ liệu ra màn hình

❖ Hiểu, vận dụng tốt các hàm nhập dữ liệu từ bàn phím

2
CHƯƠNG 4: VÀO RA DỮ LIỆU TRONG C

4.1. Các hàm xuất dữ liệu ra màn hình

4.2. Các hàm nhập dữ liệu từ bàn phím

3
CHƯƠNG 4: VÀO RA DỮ LIỆU TRONG C

4.1. Các hàm xuất dữ liệu ra màn hình

4.2. Các hàm nhập dữ liệu từ bàn phím

4
4.1. CÁC HÀM XUẤT DỮ LIỆU RA MÀN HÌNH

❖ 4.1.1. Hàm printf()


❖ 4.1.2. Hàm puts()
❖ 4.1.3. Hàm putchar()

5
4.1.1. HÀM PRINTF()

❖ Chức năng: Hiển thị dữ liệu ra thiết bị xuất chuẩn như màn hình
❖ Cú pháp: printf (“xâu_định_dạng” [, danh_sách_tham_số]);
 danh_sách_tham_số: danh sách đối số, chứa hằng, biến, biểu thức hoặc các
lời gọi hàm phân cách bởi dấu phẩy.
 “xâu định dạng” định dạng cho mỗi đối số trong danh sách; luôn được đặt
trong cặp dấu nháy kép (“...”)
❖ Chú ý:
o Cần khai báo tệp tiêu đề stdio.h
o Các mã định dạng phải khớp với danh sách đối số về số lượng, kiểu và thứ
tự.

6
4.1.1. HÀM PRINTF()

❖ Chú ý: “xâu_định_dạng” chứa từ 1 đến 3 kiểu phần tử :


 Các ký tự văn bản: gồm các ký tự có thể in được
 Các mã định dạng: bắt đầu với ký hiệu % và theo sau là một mã định
dạng tương ứng cho từng phần tử dữ liệu
 Các ký tự không in được: gồm tab, blank và new_line

7
4.1.1. HÀM PRINTF()

Nhóm kí tự Áp dụng cho


Hiển thị tham số tương ứng dưới dạng
định dạng kiểu dữ liệu
%d int, long, char số nguyên có dấu hệ đếm thập phân
%i int, long, char số nguyên có dấu hệ đếm thập phân
%o int, long, char số nguyên không dấu trong hệ đếm cơ số 8.
%u int, long, char số nguyên không dấu.
%x int, long, char số nguyên hệ đếm 16 (không có 0x đứng trước), sử dụng các chữ cái a b c d e f
%X int, long, char số nguyên hệ đếm 16 (không có 0x đứng trước), sử dụng các chữ cái A B C D E F
%e float, double số thực dấu phẩy động
%f float, double số thực dấu phẩy tĩnh
%g float, double số thực dưới dạng ngắn gọn hơn trong 2 dạng dấu phẩy tĩnh và dấu phẩy động
%c int, long, char kí tự
%s char * (xâu kí tự) xâu kí tự

8
4.1.1. HÀM PRINTF()

Nội dung Danh sách Giải thích danh Hiển thị trên
Lệnh Chuỗi điều khiển
chuỗi điều khiển đối số sách đối số màn hình
printf(“%d”,300); %d Chỉ chứa lệnh định 300 Hằng 300
dạng
printf(“%d”,10+5); %d Chỉ chứa lệnh định 10 + 5 Biểu thức 15
dạng
printf(“Good Morning Mr. Lee.”); Good Morning Mr. Chỉ chứa các ký tự văn Rỗng Rỗng Good Morning
Lee. bản Mr. Lee.
int count = 100; %d Chỉ chứa lệnh định count Biến 100
printf(“%d”,count); dạng
printf(“\nhello”); \nhello Chứa ký tự không được Rỗng Rỗng hello
in và các ký tự văn bản
#define str “Good Apple “ %s Chỉ chứa lệnh định str Hằng ký hiệu Good Apple
…….. dạng
printf(“%s”,str);
…….. %d %d Chứa lệnh định dạng count, Hai biến 0 , 100
int count,stud_num; và ký tự không được in stud_num
count=0; tud_num=100;
printf(“%d %d\n”,count, stud_num);

9
4.1.1. HÀM PRINTF()
Ký tự Giá trị
Ký tự được
điều thập Ý nghĩa
❖ Lưu ý: khiển lục phân
hiển thị

\a 0x07 BEL Phát ra tiếng chuông


 Đối với các ký
Di chuyển con trỏ sang trái 1 ký tự
tự điều khiển \b 0x08 BS
và xóa ký tự bên trái (backspace)
→ không thể sử \f 0x0C FF Sang trang
dụng cách viết \n 0x0A LF Xuống dòng
thông thường
Trở về đầu dòng
để hiển thị
\r 0x0D CR
\t 0x09 HT Tab theo cột (giống gõ phím Tab)
chúng.
\\ 0x5C \ Dấu \
 Ký tự điều \’ 0x2C ‘ Dấu nháy đơn (‘)
khiển là các ký \” 0x22 “ Dấu nháy kép (“)
tự dùng để %% Dấu phần trăm (%)
điều khiển các \? 0x3F ? Dấu chấm hỏi (?)
thao tác xuất, Ký tự có mã ACSII trong hệ bát phận Ví dụ: \101 → ‘A’
nhập dữ liệu. \ddd ddd
(hệ 8) là số ddd
Ký tự có mã ACSII trong hệ thập lục Ví dụ: \x41 → ‘A'
\xHHH oxHHH
phân là HHH
10
4.1.1. HÀM PRINTF()

❖ Ví dụ:

11
4.1.1. HÀM PRINTF()

❖ Ví dụ: Chương trình hiển thị số nguyên, số thực, ký tự và chuỗi

12
4.1.1. HÀM PRINTF()

❖ Để thuận tiện hơn cho việc hiển thị, C hỗ trợ thêm một số bổ từ để
định dạng:
 Độ rộng tối thiểu
 Căn lề trái
 ….

13
4.1.1. HÀM PRINTF()

❖ Bổ từ trong hàm printf()


 Bổ từ ‘-‘
o Phần tử dữ liệu sẽ được canh lề trái, phần tử sẽ được in bắt đầu từ vị trí bên trái trong
cùng của trường.
 Bổ từ xác định độ rộng trường
o Có thể được sử dụng với kiểu float, double hoặc mảng ký tự (chuỗi).
o Độ rộng trường là một số nguyên xác định độ rộng nhỏ nhất cho phần tử dữ liệu.
o Ví dụ : %10d

14
4.1.1. HÀM PRINTF()

❖ Bổ từ trong hàm printf()


 Độ chính xác
o Được sử dụng với kiểu float, double hoặc mảng ký tự (chuỗi).
o Nếu dùng với kiểu float, double hay chuỗi, con số xác định số lượng lớn nhất các con
số được in bên phải dấu chấm thập phân. Ví dụ: %10.3f
 Bổ từ ‘0’
o Mặc định thì khoảng trống sẽ được thêm vào một trường.
o Nếu người dùng muốn thêm số 0 vào trường thì bổ từ ‘0’ được dùng.

 Bổ từ ‘l’
o Bổ từ này có thể được dùng hiển thị các đối số nguyên kiểu int hay double.
o Mã định dạng tương ứng là %ld

15
4.1.1. HÀM PRINTF()

❖ Ví dụ: các bổ từ dùng với số nguyên

16
4.1.1. HÀM PRINTF()

❖ Ví dụ: các bổ từ dùng với số thực

17
4.1.1. HÀM PRINTF()

❖ Ví dụ: các bổ từ dùng với chuỗi

18
4.1.1. HÀM PRINTF()

❖ Mối liên hệ giữa %c và %d

19
4.1.2. HÀM PUTS()

❖ Cú pháp: puts (xâu_kí_tự)


❖ Chức năng: hiển thị xâu kí tự ra màn hình + xuống dòng
❖ Chú ý:
 Hàm này không cần mã định dạng

 Cần khai báo tệp tiêu đề conio.h

20
4.1.3. HÀM PUTCHAR()

❖ Cú pháp: putchar(đối_số)

❖ Chức năng: Hiển thị ký tự ra màn hình.

❖ Chú ý: Đối số của một hàm putchar() có thể là:

 Một hằng ký tự đơn

 Một mã định dạng

 Một biến ký tự

21
4.1.3. HÀM PUTCHAR()

❖ Các tùy chọn và chức năng của putchar( )

Đối số Hàm Chức năng


Biến ký tự putchar(c) Hiển thị nội dung của biến ký tự c
Hằng ký tự putchar(‘A’) Hiển thị ký tự A
Hằng số putchar(‘5’) Hiển thị số 5
Mã định dạng putchar(‘\t’) Xen một khoảng trống tại vị trí con trỏ

Mã định dạng putchar(‘\n’) Xen một lệnh xuống dòng tại vị trí con trỏ

22
4.1.3. HÀM PUTCHAR()

❖ Ví dụ:

23
CHƯƠNG 4: VÀO/RA DỮ LIỆU TRONG C

4.1. Các hàm xuất dữ liệu ra màn hình

4.2. Các hàm nhập dữ liệu từ bàn phím

24
4.2. CÁC HÀM NHẬP DỮ LIỆU TỪ BÀN PHÍM

❖ 4.2.1. Hàm scanf()

❖ 4.2.2. Hàm gets()

❖ 4.2.3. Hàm getchar()

❖ 4.2.4. Hàm getch()

❖ 4.2.5. Hàm getche()

25
4.2.1. HÀM SCANF()

❖ Hàm scanf()
 Để sử dụng, cần khai báo tệp tiêu đề stdio.h
 Chức năng: phép đọc dữ liệu từ bàn phím và gán cho các biến trong
chương trình khi chương trình thực thi.
 Cú pháp: scanf(xâu_định_dạng,[danh_sách_địa_chỉ]);

o xâu_định_dạng có chứa các nhóm kí tự định dạng xác định khuôn dạng
dữ liệu nhập vào.
o danh_sách_địa_chỉ: là địa chỉ (&) của các biến cần nhập giá trị cho
nó. Cách viết: &<tên biến>

26
4.2.1. HÀM SCANF()

❖ Chú ý:
 Chuỗi định dạng phải đặt trong cặp dấu nháy kép (“”).
 Các biến (địa chỉ biến) phải cách nhau bởi dấu phẩy (,).
 Có bao nhiêu biến thì phải có bấy nhiêu định dạng ;
 Thứ tự của các định dạng phải phù hợp với thứ tự của các biến ;

27
4.2.1. HÀM SCANF()

❖ Ví dụ:

28
4.2.1. HÀM SCANF()

❖ Ví dụ:

29
4.2.1. HÀM SCANF()

❖ Quy tắc lưu ý khi dùng scanf()


 Quy tắc 1:
o Khi đọc số, hàm scanf() quan niệm rằng mọi kí tự số, dấu chấm (‘.’) đều là kí tự hợp lệ.
o Khi gặp các dấu phân cách như tab, xuống dòng hay dấu cách (space bar) thì scanf() sẽ
hiểu là kết thúc nhập dữ liệu cho một số.
 Quy tắc 2:
o Khi đọc kí tự, hàm scanf() cho rằng mọi kí tự có trong bộ đệm của thiết bị vào chuẩn đều là
hợp lệ, kể cả các kí tự tab, xuống dòng hay dấu cách.
 Quy tắc 3:
o Khi đọc xâu kí tự, hàm scanf() nếu gặp các kí tự dấu trắng, dấu tab hay dấu xuống dòng thì
nó sẽ hiểu là kết thúc nhập dữ liệu cho một xâu kí tự.
→Trước khi nhập dữ liệu kí tự hay xâu kí tự ta nên dùng lệnh fflush(stdin).

30
4.2.1. HÀM SCANF()

❖ Ví dụ:

31
4.2.1. HÀM SCANF()

❖ Ví dụ:

32
4.2.1. HÀM SCANF()

❖ Ví dụ:

33
4.2.1. HÀM SCANF()

❖ Ví dụ:

34
4.2.2. HÀM GETS()

❖ Cú pháp: gets(string)

❖ Chức năng: Nhập vào một xâu kí tự

❖ Lưu ý:

 Hàm này không cần mã định dạng

 Cho phép nhập xâu kí tự có chứa cả dấu cách

 Cần khai báo tệp tiêu đề conio.h

35
4.2.3. HÀM GETCHAR()

❖ Cú pháp: getchar()
❖ Chức năng: Được dùng đọc dữ liệu nhập vào chỉ một ký tự tại một
thời điểm từ bàn phím
❖ Chú ý:
• Các ký tự đặt trong vùng đệm đến khi người dùng gõ phím enter
• Hàm getchar( ) không có đối số, nhưng vẫn phải có cặp dấu ngoặc ( )

• Cần khai báo tệp tiêu đề conio.h

36
4.2.3. HÀM GETCHAR()

❖ Ví dụ:

37
4.2.4. HÀM GETCH()

❖ Cú pháp: getch()

❖ Chức năng: để đọc một ký tự từ bàn phím.

 Kí tự được đọc không hiển thị trên màn hình.

 Ký tự đã nhập được trả về ngay lập tức mà không cần đợi phím enter.

❖ Chú ý: Cần khai báo tệp tiêu đề conio.h

38
4.2.5. HÀM GETCHE()

❖ Cú pháp: getche()

❖ Chức năng: để đọc một ký tự từ bàn phím.

 Kí tự đọc được hiển thị trên màn hình.

 Ký tự đã nhập được trả về ngay lập tức mà không cần đợi phím enter.

❖ Chú ý: Cần khai báo tệp tiêu đề conio.h

39
40

You might also like