SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Nhập và Xuất trong CNhập và Xuất trong C
Input and Output in C Input and Output in C 1 / of 27
Chương 4
Mục tiêu của bài họcMục tiêu của bài học
 Tìm hiểu các hàm Nhập/Xuất có định dạng
scanf(), printf()
Lập trình với ngôn ngữ C - Session 6 2/ 25
 Sử dụng các hàm Nhập/Xuất ký tự
getchar(), putchar()
Nhập/Xuất chuẩnNhập/Xuất chuẩn
 Thư viện chuẩn trong C
 Cung cấp các hàm xử lý nhập và xuất
chuẩn
 Các hàm nhập/xuất ký tự và chuỗi
Lập trình với ngôn ngữ C - Session 6 3/ 25
 Các hàm nhập/xuất ký tự và chuỗi
 Thiết bị nhập chuẩn thường là bàn phím.
 Thiết bị xuất chuẩn thường là màn hình
(console).
 Nhập/xuất có thể được xử lý qua file
Tập tin Header <stdio.h>Tập tin Header <stdio.h>
 #include <stdio.h>
• Đây là câu lệnh tiền xử lý
 stdio.h là tập tin header (header file)
 Chứa các macro sử dụng cho nhiều hàm
Lập trình với ngôn ngữ C - Session 6 4/ 25
 Chứa các macro sử dụng cho nhiều hàm
nhập/xuất trong C
 Các macro trong stdio.h giúp các hàm
printf(), scanf(), putchar(), getchar() thực
thi
Nhập/Xuất có định dạngNhập/Xuất có định dạng
 printf( ) – xuất dữ liệu có định dạng
 scanf( ) – nhập dữ liệu có định dạng
 Các đặc tả định dạng - dùng để định dạng
Lập trình với ngôn ngữ C - Session 6 5/ 25
 Các đặc tả định dạng - dùng để định dạng
giá trị các biến được nhập vào và in ra
printf ( )printf ( )
 Hiển thị dữ liệu ra thiết bị xuất chuẩn như màn hình
Cú pháp  printf ( “control string”, argument list);
 Danh sách đối số (argument list) chứa hằng, biến,
biểu thức hoặc các hàm phân cách bởi dấu phẩy
 Phải có mã định dạng tương ứng trong “control
Lập trình với ngôn ngữ C - Session 6 6/ 25
 Phải có mã định dạng tương ứng trong “control
string” cho mỗi đối số trong danh sách
 Các mã định dạng phải khớp với danh sách đối số về
số lượng, kiểu dữ liệu và thứ tự.
 control string luôn được đặt trong dấu “”
printf ( ) (tt.)printf ( ) (tt.)
control string có thể:
1. Các ký tự văn bản :
gồm các ký tự có thể in được
2. Các mã định dạng :
Lập trình với ngôn ngữ C - Session 6 7/ 25
bắt đầu với ký hiệu % và theo sau là một mã định
dạng tương ứng cho từng kiểu dữ liệu
3. Các ký tự không in được :
gồm tab, blank và new_line
Mã định dạngMã định dạng
Định dạng printf() scanf()
Ký tự đơn (single character) %c %c
Chuỗi (string) %s %s
Số nguyên có dấu (signed integer) %d %d
Số nguyên không dấu (unsigned integer) %u %u
Lập trình với ngôn ngữ C - Session 6 8/ 25
Số nguyên không dấu (unsigned integer) %u %u
Số nguyên hệ 16 không dấu %x %x
Số nguyên hệ 8 không dấu %o %o
Số thực dấu chấm động %f %f hoặc %e
Long float %lf %lf
Biểu diễn khoa học (dạng lũy thừa) của
float
%e hay %E %f or %e
Kiểu float ( %f hay %e , khi ngắn hơn) %g %f
Ví dụVí dụ
STT Lệnh Chuỗi điều
khiển
Nội dung chuỗi
điều khiển
Danh sách
đối số
Giải thích
danh sách
đối số
Hiển thị
trên màn
hình
1. printf(“%d”,300); %d Chỉ chứa mã định
dạng
300 Hằng 300
2. printf(“%d”,10+5); %d Chỉ chứa lệnh
định dạng
10 + 5 Biểu thức 15
3. printf(“Good Morning Mr. Lee.”); Good
Morning Mr.
Lee.
Chỉ chứa các ký
tự văn bản
Rỗng Rỗng Good
Morning
Mr. Lee.
Lập trình với ngôn ngữ C - Session 6 9/ 25
Lee. Mr. Lee.
4. int count = 100;
printf(“%d”,count);
%d Chỉ chứa lệnh
định dạng
count Biến 100
5. printf(“nhello”); nhello Chứa ký tự không
được in và các ký
tự văn bản
Rỗng Rỗng hello on
a new
line
6. #define str “Good Apple “
……..
printf(“%s”,str);
%s Chỉ chứa lệnh
định dạng
str Hằng ký
hiệu
Good
Apple
7. ……..
int count,stud_num;
count=0;
stud_nim=100;
printf(“%d %dn”,count,
stud_num);
%d %d Chứa lệnh định
dạng và ký tự
không được in
count,
stud_num
Hai biến 0 , 100
Các ký tự đặc biệtCác ký tự đặc biệt
 In ra ký tự 
 “ In ra ký tự “
Lập trình với ngôn ngữ C - Session 6 10/ 25
 “ In ra ký tự “
%% In ra ký tự %
Ví dụ cho hàm printf()Ví dụ cho hàm printf()
Chương trình hiển thị số nguyên, thập phân, ký tự và
chuỗi
#include <stdio.h>
void main()
{
Lập trình với ngôn ngữ C - Session 6 11/ 25
{
int a = 10;
float b = 24.67892345;
char ch = ‘A’;
printf(“Integer data = %d”, a);
printf(“Float Data = %f”,b);
printf(“Character = %c”,ch);
printf(“This prints the string”);
printf(“%s”,”This also prints a string”);
}
Bổ từ trong hàm printf( )Bổ từ trong hàm printf( )
1. Bổ từ -
Dữ liệu in ra đượ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.
Lập trình với ngôn ngữ C - Session 6 12/ 25
2. Bổ từ xác định độ rộng trường n
Sử dụng cho tất cả các kiểu dữ liệu. Độ rộng
trường là một số nguyên xác định chiều dài nhỏ
nhất chứa dữ liệu in ra
Bổ từ trong hàm printf( ) (tt.)Bổ từ trong hàm printf( ) (tt.)
3. Độ chính xác .m
Sử dụng với kiểu float, double. Chỉ ra số chữ
số sau phần thập phân
4. Bổ từ 0
Các số 0 được thêm vào dữ liệu khi in ra
Lập trình với ngôn ngữ C - Session 6 13/ 25
Các số 0 được thêm vào dữ liệu khi in ra
trong trường hợp bổ từ chỉ độ rộng lớn (mặc
định là các khoảng trắng)
5. Bổ từ l
Hiển thị các đối số nguyên kiểu int hay double.
Mã định dạng tương ứng là %ld
Bổ từ trong hàm printf( ) (tt.)Bổ từ trong hàm printf( ) (tt.)
6. Bổ từ ‘h’
Bổ từ này được sử dụng để hiển thị dạng
short int. Mã định dạng tương ứng như là
%hd
Lập trình với ngôn ngữ C - Session 6 14/ 25
%hd
7. Bổ từ ‘*’
Chương trình sẽ xác định độ rộng để
chứa dữ liệu
Ví dụ về các bổ từVí dụ về các bổ từ
/* This program demonstrate the use of Modifiers in printf() */
#include <stdio.h>
void main(){
printf(“The number 555 in various forms:n”);
printf(“Without any modifier: n”);
printf(“[%d]n”,555);
printf(“With – modifier :n”);
Lập trình với ngôn ngữ C - Session 6 15/ 25
printf(“With – modifier :n”);
printf(“[%-d]n”,555);
printf(“With digit string 10 as modifier :n”);
printf(“[%10d]n”,555);
printf(“With 0 as modifier : n”);
printf(“[%0d]n”,555);
printf(“With 0 and digit string 10 as modifiers :n”);
printf(“[%010d]n”,555);
printf(“With -,0 and digit string 10 as
modifiers:n”);
printf(“[%-010d]n”,555);
}
scanf( )scanf( )
 Được sử dụng để nhập dữ liệu
Dạng tổng quát của hàm scanf()
scanf(“control string”, argument list);
Lập trình với ngôn ngữ C - Session 6 16/ 25
 Mã định dạng dùng trong hàm printf()
cũng được sử dụng trong hàm scanf()
Sự khác nhau về danh sách đối số giữaSự khác nhau về danh sách đối số giữa
printf( ) và scanf( )printf( ) và scanf( )
 printf() sử dụng các biến, hằng và các biểu thức
 scanf() sử dụng các con trỏ tới biến
Danh sách đối số trong scanf() phải theo qui tắc :
 Đọc giá trị vào một biến có kiểu dữ liệu cơ sở, sử
Lập trình với ngôn ngữ C - Session 6 17/ 25
 Đọc giá trị vào một biến có kiểu dữ liệu cơ sở, sử
dụng ký hiệu & trước tên biến
 Đọc giá trị vào một biến có kiểu dữ liệu dẫn xuất,
không sử dụng & trước tên biến
 Không có tuỳ chọn %g
 Mã định dạng %f và %e là giống nhau
Ví dụ với hàm scanf( )Ví dụ với hàm scanf( )
#include <stdio.h>
void main(){
int a;
float d;
char ch, name[40];
Lập trình với ngôn ngữ C - Session 6 18/ 25
char ch, name[40];
printf(“Please enter the datan”);
scanf(“%d %f %c %s”,&a,&d,&ch,name);
printf(“n The values accepted are:
%d,%f,%c,%s”,a, d,ch,name);
}
Vùng đệm Nhập/XuấtVùng đệm Nhập/Xuất
 Được sử dụng để đọc và ghi các ký tự ASCII
 Một vùng đệm (buffer) là một không gian lưu
trữ tạm thời trong bộ nhớ hoặc trên thẻ điều
khiển thiết bị
Lập trình với ngôn ngữ C - Session 6 19/ 25
khiển thiết bị
 Bộ đệm Nhập/Xuất có thể chia làm :
 Console I/O
 Buffered File I/O
Console I/OConsole I/O
 Các hàm Console I/O chuyển các thao tác đến
thiết bị xuất nhập chuẩn của hệ thống
 Trong ‘C’ các hàm console I/O đơn giản nhất
Lập trình với ngôn ngữ C - Session 6 20/ 25
 Trong ‘C’ các hàm console I/O đơn giản nhất
là:
 getchar( ) - đọc một và chỉ một ký tự từ bàn phím
 putchar( ) - xuất một ký tự lên màn hình
getchar( )getchar( )
 Dùng đọc dữ liệu nhập, một ký tự từ bàn
phím
 Các ký tự đặt trong vùng đệm đến khi người
Lập trình với ngôn ngữ C - Session 6 21/ 25
 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 ( )
Ví dụ hàm getchar()Ví dụ hàm getchar()
/*Program to demonstrate the use of getchar()*/
#include <stdio.h>
void main()
{
Lập trình với ngôn ngữ C - Session 6 22/ 25
{
char letter;
printf(“nPlease enter any character:“);
letter = getchar();
printf(“nThe character entered by you
is %c“, letter);
}
putchar( )putchar( )
 Hàm xuất ký tự trong ‘C’
 Có một đối số
Đối số của một hàm putchar( ) có thể là :
Lập trình với ngôn ngữ C - Session 6 23/ 25
Đối số của một hàm putchar( ) có thể là :
 Một hằng ký tự đơn
 Một mã escape
 Một biến ký tự
Ví dụVí dụ
 putchar(c) : hiển thị kí tự lưu trữ trong biến c
ra màn hình
 putchar(‘A’) : hiển thị A ra màn hình
Lập trình với ngôn ngữ C - Session 6 24/ 25
 putchar(‘A’) : hiển thị A ra màn hình
 putchar(‘5’) : hiển thị 5 ra màn hình
 putchar(‘t’) : hiển thị khoảng tab
 putchar(‘n’) : con trỏ xuống dòng tiếp theo
putchar( )putchar( )
/* This program demonstrates the use of
constants and escape sequences in
putchar()*/
#include <stdio.h>
void main(){
putchar(‘H’); putchar(‘n’);
putchar(‘t’);
Lập trình với ngôn ngữ C - Session 6 25/ 25
putchar(‘t’);
putchar(‘E’); putchar(‘n’);
Ví dụ
putchar(‘t’); putchar(‘t’);
putchar(‘L’); putchar(‘n’);
putchar(‘t’); putchar(‘t’); putchar(‘t’);
putchar(‘L’); putchar(‘n’);
putchar(‘t’); putchar(‘t’); putchar(‘t’);
putchar(‘t’);
putchar(‘O’);
}

Mais conteúdo relacionado

Mais procurados

Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
Congdat Le
 
Lap trinh huong doi tuong voi c++ smith.n studio
Lap trinh huong doi tuong voi c++   smith.n studioLap trinh huong doi tuong voi c++   smith.n studio
Lap trinh huong doi tuong voi c++ smith.n studio
na
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
bookbooming1
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
Cuong
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
Hồ Lợi
 

Mais procurados (15)

Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2
 
Ky thuat lap trinh c++
Ky thuat lap trinh c++Ky thuat lap trinh c++
Ky thuat lap trinh c++
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++
 
Debug trong c
Debug trong cDebug trong c
Debug trong c
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Thdc3 Lap Trinh C
Thdc3 Lap Trinh CThdc3 Lap Trinh C
Thdc3 Lap Trinh C
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Lap trinh huong doi tuong voi c++ smith.n studio
Lap trinh huong doi tuong voi c++   smith.n studioLap trinh huong doi tuong voi c++   smith.n studio
Lap trinh huong doi tuong voi c++ smith.n studio
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]Bài giảng ngôn ngữ lập trình c c++   phạm hồng thái[bookbooming.com]
Bài giảng ngôn ngữ lập trình c c++ phạm hồng thái[bookbooming.com]
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
 

Semelhante a T4

Chuong1 on tapc
Chuong1 on tapcChuong1 on tapc
Chuong1 on tapc
Hung Pham
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình con
Nhungoc Phamhai
 
Phan 2 chuong 8 (chuoi ky tu)
Phan 2   chuong 8 (chuoi ky tu)Phan 2   chuong 8 (chuoi ky tu)
Phan 2 chuong 8 (chuoi ky tu)
Trần Văn Nam
 
Chuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptxChuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptx
NhatMinh733974
 
3 Function
3 Function3 Function
3 Function
Cuong
 
3 Function
3 Function3 Function
3 Function
Cuong
 

Semelhante a T4 (20)

Session 06
Session 06Session 06
Session 06
 
Nhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá ThịnhNhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá Thịnh
 
Ch02 - Cau truc chuong trinh C.pptx
Ch02 - Cau truc chuong trinh C.pptxCh02 - Cau truc chuong trinh C.pptx
Ch02 - Cau truc chuong trinh C.pptx
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Ngon ngu c
Ngon ngu cNgon ngu c
Ngon ngu c
 
Lập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programmingLập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programming
 
Chuong1 on tapc
Chuong1 on tapcChuong1 on tapc
Chuong1 on tapc
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
06 tong quan ve ngon ngu c
06 tong quan ve ngon ngu c06 tong quan ve ngon ngu c
06 tong quan ve ngon ngu c
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình con
 
Nhung bai mau lap trinh c
Nhung bai mau lap trinh cNhung bai mau lap trinh c
Nhung bai mau lap trinh c
 
Phan 2 chuong 8 (chuoi ky tu)
Phan 2   chuong 8 (chuoi ky tu)Phan 2   chuong 8 (chuoi ky tu)
Phan 2 chuong 8 (chuoi ky tu)
 
Chuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptxChuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptx
 
Bai 18
Bai 18Bai 18
Bai 18
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Session 17
Session 17Session 17
Session 17
 
Session 17
Session 17Session 17
Session 17
 
3 Function
3 Function3 Function
3 Function
 
3 Function
3 Function3 Function
3 Function
 

Mais de Hồ Lợi

Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
Hồ Lợi
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
Hồ Lợi
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
Hồ Lợi
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
Hồ Lợi
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
Hồ Lợi
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
Hồ Lợi
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
Hồ Lợi
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
Hồ Lợi
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
Hồ Lợi
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
Hồ Lợi
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
Hồ Lợi
 

Mais de Hồ Lợi (20)

Xu ly chuoi
Xu ly chuoiXu ly chuoi
Xu ly chuoi
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
 
Nguyen lyoop
Nguyen lyoopNguyen lyoop
Nguyen lyoop
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
 
File trong c_
File trong c_File trong c_
File trong c_
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
 
Dethi c++ -lt
Dethi c++ -ltDethi c++ -lt
Dethi c++ -lt
 
D05 stl
D05 stlD05 stl
D05 stl
 
Cpl test3
Cpl test3Cpl test3
Cpl test3
 
Cpl test2
Cpl test2Cpl test2
Cpl test2
 
Cpl test1
Cpl test1Cpl test1
Cpl test1
 

T4

  • 1. Nhập và Xuất trong CNhập và Xuất trong C Input and Output in C Input and Output in C 1 / of 27 Chương 4
  • 2. Mục tiêu của bài họcMục tiêu của bài học  Tìm hiểu các hàm Nhập/Xuất có định dạng scanf(), printf() Lập trình với ngôn ngữ C - Session 6 2/ 25  Sử dụng các hàm Nhập/Xuất ký tự getchar(), putchar()
  • 3. Nhập/Xuất chuẩnNhập/Xuất chuẩn  Thư viện chuẩn trong C  Cung cấp các hàm xử lý nhập và xuất chuẩn  Các hàm nhập/xuất ký tự và chuỗi Lập trình với ngôn ngữ C - Session 6 3/ 25  Các hàm nhập/xuất ký tự và chuỗi  Thiết bị nhập chuẩn thường là bàn phím.  Thiết bị xuất chuẩn thường là màn hình (console).  Nhập/xuất có thể được xử lý qua file
  • 4. Tập tin Header <stdio.h>Tập tin Header <stdio.h>  #include <stdio.h> • Đây là câu lệnh tiền xử lý  stdio.h là tập tin header (header file)  Chứa các macro sử dụng cho nhiều hàm Lập trình với ngôn ngữ C - Session 6 4/ 25  Chứa các macro sử dụng cho nhiều hàm nhập/xuất trong C  Các macro trong stdio.h giúp các hàm printf(), scanf(), putchar(), getchar() thực thi
  • 5. Nhập/Xuất có định dạngNhập/Xuất có định dạng  printf( ) – xuất dữ liệu có định dạng  scanf( ) – nhập dữ liệu có định dạng  Các đặc tả định dạng - dùng để định dạng Lập trình với ngôn ngữ C - Session 6 5/ 25  Các đặc tả định dạng - dùng để định dạng giá trị các biến được nhập vào và in ra
  • 6. printf ( )printf ( )  Hiển thị dữ liệu ra thiết bị xuất chuẩn như màn hình Cú pháp  printf ( “control string”, argument list);  Danh sách đối số (argument list) chứa hằng, biến, biểu thức hoặc các hàm phân cách bởi dấu phẩy  Phải có mã định dạng tương ứng trong “control Lập trình với ngôn ngữ C - Session 6 6/ 25  Phải có mã định dạng tương ứng trong “control string” cho mỗi đối số trong danh sách  Các mã định dạng phải khớp với danh sách đối số về số lượng, kiểu dữ liệu và thứ tự.  control string luôn được đặt trong dấu “”
  • 7. printf ( ) (tt.)printf ( ) (tt.) control string có thể: 1. Các ký tự văn bản : gồm các ký tự có thể in được 2. Các mã định dạng : Lập trình với ngôn ngữ C - Session 6 7/ 25 bắt đầu với ký hiệu % và theo sau là một mã định dạng tương ứng cho từng kiểu dữ liệu 3. Các ký tự không in được : gồm tab, blank và new_line
  • 8. Mã định dạngMã định dạng Định dạng printf() scanf() Ký tự đơn (single character) %c %c Chuỗi (string) %s %s Số nguyên có dấu (signed integer) %d %d Số nguyên không dấu (unsigned integer) %u %u Lập trình với ngôn ngữ C - Session 6 8/ 25 Số nguyên không dấu (unsigned integer) %u %u Số nguyên hệ 16 không dấu %x %x Số nguyên hệ 8 không dấu %o %o Số thực dấu chấm động %f %f hoặc %e Long float %lf %lf Biểu diễn khoa học (dạng lũy thừa) của float %e hay %E %f or %e Kiểu float ( %f hay %e , khi ngắn hơn) %g %f
  • 9. Ví dụVí dụ STT Lệnh Chuỗi điều khiển Nội dung chuỗi điều khiển Danh sách đối số Giải thích danh sách đối số Hiển thị trên màn hình 1. printf(“%d”,300); %d Chỉ chứa mã định dạng 300 Hằng 300 2. printf(“%d”,10+5); %d Chỉ chứa lệnh định dạng 10 + 5 Biểu thức 15 3. printf(“Good Morning Mr. Lee.”); Good Morning Mr. Lee. Chỉ chứa các ký tự văn bản Rỗng Rỗng Good Morning Mr. Lee. Lập trình với ngôn ngữ C - Session 6 9/ 25 Lee. Mr. Lee. 4. int count = 100; printf(“%d”,count); %d Chỉ chứa lệnh định dạng count Biến 100 5. printf(“nhello”); nhello Chứa ký tự không được in và các ký tự văn bản Rỗng Rỗng hello on a new line 6. #define str “Good Apple “ …….. printf(“%s”,str); %s Chỉ chứa lệnh định dạng str Hằng ký hiệu Good Apple 7. …….. int count,stud_num; count=0; stud_nim=100; printf(“%d %dn”,count, stud_num); %d %d Chứa lệnh định dạng và ký tự không được in count, stud_num Hai biến 0 , 100
  • 10. Các ký tự đặc biệtCác ký tự đặc biệt In ra ký tự “ In ra ký tự “ Lập trình với ngôn ngữ C - Session 6 10/ 25 “ In ra ký tự “ %% In ra ký tự %
  • 11. Ví dụ cho hàm printf()Ví dụ cho hàm printf() Chương trình hiển thị số nguyên, thập phân, ký tự và chuỗi #include <stdio.h> void main() { Lập trình với ngôn ngữ C - Session 6 11/ 25 { int a = 10; float b = 24.67892345; char ch = ‘A’; printf(“Integer data = %d”, a); printf(“Float Data = %f”,b); printf(“Character = %c”,ch); printf(“This prints the string”); printf(“%s”,”This also prints a string”); }
  • 12. Bổ từ trong hàm printf( )Bổ từ trong hàm printf( ) 1. Bổ từ - Dữ liệu in ra đượ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. Lập trình với ngôn ngữ C - Session 6 12/ 25 2. Bổ từ xác định độ rộng trường n Sử dụng cho tất cả các kiểu dữ liệu. Độ rộng trường là một số nguyên xác định chiều dài nhỏ nhất chứa dữ liệu in ra
  • 13. Bổ từ trong hàm printf( ) (tt.)Bổ từ trong hàm printf( ) (tt.) 3. Độ chính xác .m Sử dụng với kiểu float, double. Chỉ ra số chữ số sau phần thập phân 4. Bổ từ 0 Các số 0 được thêm vào dữ liệu khi in ra Lập trình với ngôn ngữ C - Session 6 13/ 25 Các số 0 được thêm vào dữ liệu khi in ra trong trường hợp bổ từ chỉ độ rộng lớn (mặc định là các khoảng trắng) 5. Bổ từ l Hiển thị các đối số nguyên kiểu int hay double. Mã định dạng tương ứng là %ld
  • 14. Bổ từ trong hàm printf( ) (tt.)Bổ từ trong hàm printf( ) (tt.) 6. Bổ từ ‘h’ Bổ từ này được sử dụng để hiển thị dạng short int. Mã định dạng tương ứng như là %hd Lập trình với ngôn ngữ C - Session 6 14/ 25 %hd 7. Bổ từ ‘*’ Chương trình sẽ xác định độ rộng để chứa dữ liệu
  • 15. Ví dụ về các bổ từVí dụ về các bổ từ /* This program demonstrate the use of Modifiers in printf() */ #include <stdio.h> void main(){ printf(“The number 555 in various forms:n”); printf(“Without any modifier: n”); printf(“[%d]n”,555); printf(“With – modifier :n”); Lập trình với ngôn ngữ C - Session 6 15/ 25 printf(“With – modifier :n”); printf(“[%-d]n”,555); printf(“With digit string 10 as modifier :n”); printf(“[%10d]n”,555); printf(“With 0 as modifier : n”); printf(“[%0d]n”,555); printf(“With 0 and digit string 10 as modifiers :n”); printf(“[%010d]n”,555); printf(“With -,0 and digit string 10 as modifiers:n”); printf(“[%-010d]n”,555); }
  • 16. scanf( )scanf( )  Được sử dụng để nhập dữ liệu Dạng tổng quát của hàm scanf() scanf(“control string”, argument list); Lập trình với ngôn ngữ C - Session 6 16/ 25  Mã định dạng dùng trong hàm printf() cũng được sử dụng trong hàm scanf()
  • 17. Sự khác nhau về danh sách đối số giữaSự khác nhau về danh sách đối số giữa printf( ) và scanf( )printf( ) và scanf( )  printf() sử dụng các biến, hằng và các biểu thức  scanf() sử dụng các con trỏ tới biến Danh sách đối số trong scanf() phải theo qui tắc :  Đọc giá trị vào một biến có kiểu dữ liệu cơ sở, sử Lập trình với ngôn ngữ C - Session 6 17/ 25  Đọc giá trị vào một biến có kiểu dữ liệu cơ sở, sử dụng ký hiệu & trước tên biến  Đọc giá trị vào một biến có kiểu dữ liệu dẫn xuất, không sử dụng & trước tên biến  Không có tuỳ chọn %g  Mã định dạng %f và %e là giống nhau
  • 18. Ví dụ với hàm scanf( )Ví dụ với hàm scanf( ) #include <stdio.h> void main(){ int a; float d; char ch, name[40]; Lập trình với ngôn ngữ C - Session 6 18/ 25 char ch, name[40]; printf(“Please enter the datan”); scanf(“%d %f %c %s”,&a,&d,&ch,name); printf(“n The values accepted are: %d,%f,%c,%s”,a, d,ch,name); }
  • 19. Vùng đệm Nhập/XuấtVùng đệm Nhập/Xuất  Được sử dụng để đọc và ghi các ký tự ASCII  Một vùng đệm (buffer) là một không gian lưu trữ tạm thời trong bộ nhớ hoặc trên thẻ điều khiển thiết bị Lập trình với ngôn ngữ C - Session 6 19/ 25 khiển thiết bị  Bộ đệm Nhập/Xuất có thể chia làm :  Console I/O  Buffered File I/O
  • 20. Console I/OConsole I/O  Các hàm Console I/O chuyển các thao tác đến thiết bị xuất nhập chuẩn của hệ thống  Trong ‘C’ các hàm console I/O đơn giản nhất Lập trình với ngôn ngữ C - Session 6 20/ 25  Trong ‘C’ các hàm console I/O đơn giản nhất là:  getchar( ) - đọc một và chỉ một ký tự từ bàn phím  putchar( ) - xuất một ký tự lên màn hình
  • 21. getchar( )getchar( )  Dùng đọc dữ liệu nhập, một ký tự từ bàn phím  Các ký tự đặt trong vùng đệm đến khi người Lập trình với ngôn ngữ C - Session 6 21/ 25  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 ( )
  • 22. Ví dụ hàm getchar()Ví dụ hàm getchar() /*Program to demonstrate the use of getchar()*/ #include <stdio.h> void main() { Lập trình với ngôn ngữ C - Session 6 22/ 25 { char letter; printf(“nPlease enter any character:“); letter = getchar(); printf(“nThe character entered by you is %c“, letter); }
  • 23. putchar( )putchar( )  Hàm xuất ký tự trong ‘C’  Có một đối số Đối số của một hàm putchar( ) có thể là : Lập trình với ngôn ngữ C - Session 6 23/ 25 Đối số của một hàm putchar( ) có thể là :  Một hằng ký tự đơn  Một mã escape  Một biến ký tự
  • 24. Ví dụVí dụ  putchar(c) : hiển thị kí tự lưu trữ trong biến c ra màn hình  putchar(‘A’) : hiển thị A ra màn hình Lập trình với ngôn ngữ C - Session 6 24/ 25  putchar(‘A’) : hiển thị A ra màn hình  putchar(‘5’) : hiển thị 5 ra màn hình  putchar(‘t’) : hiển thị khoảng tab  putchar(‘n’) : con trỏ xuống dòng tiếp theo
  • 25. putchar( )putchar( ) /* This program demonstrates the use of constants and escape sequences in putchar()*/ #include <stdio.h> void main(){ putchar(‘H’); putchar(‘n’); putchar(‘t’); Lập trình với ngôn ngữ C - Session 6 25/ 25 putchar(‘t’); putchar(‘E’); putchar(‘n’); Ví dụ putchar(‘t’); putchar(‘t’); putchar(‘L’); putchar(‘n’); putchar(‘t’); putchar(‘t’); putchar(‘t’); putchar(‘L’); putchar(‘n’); putchar(‘t’); putchar(‘t’); putchar(‘t’); putchar(‘t’); putchar(‘O’); }