Bài 4 Nhập và Xuất trong C
Mục tiêu:
Kết thúc bài học này, bạn có thể:
!"#$%
Giới thiệu
&'(!)*+,-'./'(01!,"
23,$'4
5% &*627/89:8;%
<% &*6+%
&'=>?@AB7(C%D:8;,*,=
6EF(!)27-'%G'H+H.27-F(=!CB
+,/',+!06CF%
&'I.2/9+F '/%&2/9+
6C,"'8J2'K!"#L%&'(E>.C+
ME+,/'N0(9C+M0!06C
0(9%&0(9*2O,(H%&0(9*2O,
-'',$%D232P0>N>-0(
9%D+23,2KQ>K(A0(,2+'!%R+,/=J
230>%
4.1 Tập tin tiêu đề <stdio.h>
&'H 2P.SN0TS4
#include <stdio.h>
GU>,,/@,"preprocessor command)%&'I9.!"/#KVW=K%
stdio.h ,W23E,K@header). DA''@
23M'I%printf(), scanf(), putchar()getchar()230!0$'E
''stdio.h #*/27A%
4.2 Nhập và xuất trong C (Input and Output)
&2/9'I#/>K=%I1,4
• printf()X%
• scanf()X%
D+>E,+23-1E+,/$'
!23@!(Y2OM%ZW6A$'F
(0?23'%
4.2.1 printf()
I1S6$WP>6=2P%[U>.1?$107%
printf()23M+,/K0(9X'',$-%R\F
>24
printf(“control string”, argument list);
R]$,('^_.(0.(A>23U(Y
9>%I=CW,/_'L@!control string) 'L]
'%D+,/C27AP]@],23.!+
,/A#%IL@!C,*23V(K'V>!`“”.U>,U
delimiters)%IL@!AW>@7(=2PU>4
Ký tự văn bản (Text characters)XZ'^!"#23?23]2
->%I!'Ca2O23M'/U2O$,23%
Lệnh định dạng - bQA +,/']?23%
cW,/(a=PW!"/%$',WS27A'
+,/%R%23M'printf()dVC>e%I,/
+,/27H$'A#!NC%cWS-=0
'E +,/=%
Các ký tự không in đượcXZ'^H(.!'Ca]T%
cL,/^W>@S%cWS('^!"/ %W(W
!%ZCf%5,/!KS!23L3(YU,/printf()4
Ðịnh dạng printf() scanf()
g"#7,$I$ h h
IL h h
]>K$$,$$ h h
]UWi,'' h h'Vh$
]UWjZk=U h, h,
]UWjZk]J h$ h'Vh$
]UWh'Vh$.']'H7 h
]>K!*l$$,$$ h h
], U!*RMmnZIRoip
l$$$,$$
h h
](U!*l$',$$ h' h'
Bảng 4.1: Mã định dạng trong printf ()
&'(CK.c, d, f, lf, e, g, u, s, ox,(W!%
I6>2P'S!23e!0'ZCf%<4
Mã định dạng Quy ước in ấn
h I']']>K%
h q=]>KF]?23>K%q=U?Af
']%D0=UF']H7f].?23K]
!*r(KC>E,,TH(KC%
h$ cW'](KUf'](KC]2h%
Bảng 4.2: Quy ước in
ZY-!"/%,s“23MV(/'L@!.01=!"/
>,K-.1C23M2'ZCf%t4
ss :!"#\
sm :!"#“
hh :!"#%
Bảng 4.3: Các ký tự đặc biệt trong chuỗi điều khiển
ZC2PU>2H L@!S!%
Số Câu lệnh
Chuỗi
điều
khiển
Nội dung mà
chuỗi điều khiển
chứa đựng
Danh
sách
tham số
Giải thích
danh sách
tham số
Hiển thị trên
màn hình
5% mhp.trru h Id A ,/
trr _] trr
<% mhp.5rvwu h Id A ,/
5rvw ZA 5w
t% mx''
c'c%y$$%pu
x''
c'
c%y$$%
Id , !" #
B(C
g*
D,
g* x'' c'
c%y$$%
z% '{5rru
mhp.'u
h Id A ,/
I' Z0 5rr
w% ms$,,'pu s$,,' Id , !" #
B(C!"#
!*23%
g* g* $,,'
&KTP
f% |$$ mx''
n,$p
}}%%
mhp.u
h Id A ,/
_L x''n,$
~% }}%%
'.•u
'{ru
•{5rru
mh hsp.
'.•u
hh Id A ,/
-
#'
'.
•
(0 r.5rr
Bảng 4.4 : Chuỗi điều khiển và mã định dạng
Ví dụ 4.1 :
GU>,W27-7CME'WL23$',/%
I27->JW!"#7.]>K]#,$$.$$.,'%
#include <stdio.h>
void main()
{
int a = 10;
float b = 24.67892345;
char ch = ‘A’;
printf(“\nInteger data = %d”, a);
printf(“\nFloat Data = %f”, b);
printf(“\nCharacter = %c”, ch);
printf(“\nThis prints the string”);
printf(“%s”, ”\nThis also prints a string”);
}
g06C27-24
Integer data = 10
Float Data = 24.678923
Character = A
This prints the string
This also prints a string
Bổ từ (Modifier) cho các lệnh định dạng trong printf()
I,/(eNmodifier.>eVC>e]%U>,(eN
23'U,/printf(). D0@(eN23M-1U$'-#4
Bổ từ ‘-‘
R+,/?23(K'!*'.1?23(a=NH'M
(K%
Bổ từ xác định độ rộng
I123MP!4float, double hay char array Lj%ZeNWW,
W]>KWW€F2O+,/%I+,/WW€7?'!0
6CC'2O+,/%I+,/!H2P,P7?23(_MK
+H'F>K=%•H .%10f ,,/' +,/!]#PWW
2O+,/,5r%
Bổ từ xác định độ chính xác
I123MP!float, double > mảng ký tự (char array, string)%ZeNWW
H2302P.mPm,W]>K%D0 P!floatdouble.L]
d]']tối đa23H(KCU%
D0=U]F +,/!float haydouble236WW']d'(eN.-
]?23làm tròn%D0@L236@d-L?23cắt bỏ phần
dư ra ở phía cuối%cW]!*r?23K'0]']##'W +,/H
723d'(eN%&27#.!'Ca?23K''L!"#%•H .
h5r%t,,/' +,/!float.PWW]'2O+,/,5rt
H=U%
Bổ từ ‘0’
&$'V./K'W2O23#/P!'Ca%D02OM]
K'2OP]!*r.(eN>C23M%
Bổ từ ‘l’
ZeN>23M]>K24long int>W]!double%cS
27A',%ld.
Bổ từ ‘h’
ZeN>23M/!short$$%cS27A',%hd%
Bổ từ ‘*’
ZeN>23M!2OM!*]d2PWWF2O]27-
%D2!P(eN>.W]23>K=CdWW2O %
I1S>$+(eN>'W0'%G=K.1$`WF]P
++,/!]>K%
Ví dụ 4.2:
/* Chương trình này trình bày cách dùng bổ từ trong 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”);
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);
}
g06C22PU>4
The number 555 in various forms:
Without any modifier:
[555]
With - modifier:
[555]
With digit string 10 as modifier:
[ 555]
With 0 as modifier:
[555]
With 0 and digit string 10 as modifiers:
[0000000555]
With -, 0 and digit string 10 as modifiers:
[555 ]
I1SM!"/‚[‘‚]’ d72O(a=7!01%g1M%d
!*(eN.1>_M'W2OMWWP]>K%gM
%10d 1>_M5r!'Ca'2O]23,@C$'V%D0
M(eNX.]?23'2O%D0M(eNr.1>_]?K
'r>-,!'Ca%
ZU>O1S>$(eNMP]#%
Ví dụ 4.3:
/* Chương trình này trình bày cách dùng bổ từ trong printf() */
#include <stdio.h>
void main()
{
printf(“The number 555.55 in various forms:\n”);
printf(“In float form without modifiers:\n”);
printf(“[%f]\n”, 555.55);
printf(“In exponential form without any modifier:\n”);
printf(“[%e]\n”, 555.55);
printf(“In float form with - modifier:\n”);
printf(“[%-f]\n”, 555.55);
printf(“In float form with digit string 10.3 as modifier\n”);
printf(“[%10.3f]\n”, 555.55);
printf(“In float form with 0 as modifier:\n”);
printf(“[%0f]\n”, 555.55);
printf(“In float form with 0 and digit string 10.3”);
printf(“as modifiers:\n”);
printf(“[%010.3f]\n”, 555.55);
printf(“In float form with -, 0 ”);
printf(“and digit string 10.3 as modifiers:\n”);
printf(“[%-010.3f]\n”, 555.55);
printf(“In exponential form with 0”);
printf(“ and digit string 10.3 as modifiers:\n”);
printf(“[%010.3e]\n”, 555.55);
printf(“In exponential form with -, 0”);
printf(“ and digit string 10.3 as modifiers:\n”);
printf(“[%-010.3e]\n\n”, 555.55);
}
g06C24
The number 555.55 in various forms:
In float form without modifiers:
[555.550000]
In exponential form without any modifier:
[5.555500e+02]
In float form with - modifier:
[555.550000]
In float form with digit string 10.3 as modifier
[ 555.550]
In float form with 0 as modifier:
[555.550000]
In float form with 0 and digit string 10.3 as modifiers:
[000555.550]
In float form with -, 0 and digit string 10.3 as modifiers:
[555.550 ]
In exponential form with 0 and digit string 10.3 as modifiers:
[05.555e+02]
In exponential form with -,0 and digit string 10.3 as modifiers:
[5.555e+02]
&$'V'%f.1>_f']'=UV'%e,
W']=>Kf']=(KCU%I1"/<]]
M'H K.]'](KCU,t.\0!06C!*23,
T%
ZU>O.1S>$(eNMPL]%I1"YW2OA'(WL%
7+.1"VCWH.4'/P]!"#23%
Ví dụ 4.4:
/* Chương trình trình bày cách dùng bổ từ với chuỗi*/