Lp trình nâng cao -Chương 09 -N Công Thng 1
Chương 9. Kiu d liu tp
I.Giithiuvtp
II.Tpnhphân
III.Tpvănbn
IV.Truynhptrctiếpcácphntcatp
V.Tpkhôngxác địnhkiudliu
Lp trình nâng cao -Chương 09 -N Công Thng 2
I. Gii thiu v tp
1.Kháinimvtp
2.Cutccatp
3.Phânloitp
4.Khaibáotp
Lp trình nâng cao -Chương 09 -N Công Thng 3
1. Khái nim v tp
lKiutpbaogmmttphuhncác
phntcócùngkiudliuđượclưutr
trênbnhngoài.
lSphntcatpkhôngcnxác địnhkhi
khaibáobiếntp.
lCácphntcatpđượclưutrtrênb
nhngoài. Đây đặcđimkcvitt
ccáckiudliukhác.
Lp trình nâng cao -Chương 09 -N Công Thng 4
2. Cu trúc ca tp
lCácphntcatpđượcspxếpthànhmt
dãycácbyteliêntiếpnhau.Sauphntdliu
cuicùnglàphntEOF.Phntnàykhông
philàdliumàlàmãkếtthúctp.
EOF45 12 20 25 15 72 81 8
0 2 4 6 8 10 12 14 16
V trí byte
Con tr
ch v
1 3 5 7 9 11 13 15
Lp trình nâng cao -Chương 09 -N Công Thng 5
3. Phân loi tp
lDavàocáchlưutrdliutntpta
cácloitpsau:
§Tpnhphân(binary):Dliughiratpnh
phâncódngcácbytenhphângingnhư
trongbnh.
§Tpvănbn(text):Dliuđượcghiratp
thànhcáckýttrongbngmãASCII.Trên
tpvănbncómãxungdònggm2kýt
LF(mã10)vàCR(mã13).
Lp trình nâng cao -Chương 09 -N Công Thng 6
4. Khai báo tp
lKiutpđãđượctrìnhbiêndch định
nghĩavitênchunlàFILE.
lKhaibáotptakhaibáobiếncontrtr
tikiuFILE.
Víd:FILE*f;
lContrtpstrtivùngnhchacác
thôngtinvtptnbnhngoài.
Lp trình nâng cao -Chương 09 -N Công Thng 7
II. Tp nh phân
1.Ghidliuratpnhphân
2. Đọcdliuttpnhphân
Lp trình nâng cao -Chương 09 -N Công Thng 8
1. Ghi d liu ra tp nh phân
lB1:Mtpđể ghibnghàmfopen()
fp = fopen(Tên tp, Kiu truy nhp);
trong đó:+)fplàcontrtpđượckhai
otrtikiuFILE;
+)Têntpcóthlàhngxâuhocbiến
xâu.Trongtêntpcóth đườngdn.
+Kiutruynhptplàhngxâudint
cáchtruynhpvàotp.
Lp trình nâng cao -Chương 09 -N Công Thng 9
Các kiu truy nhp tp nh phân
KiuÝ nghĩa
wb” Mtpmiđể ghitheokiunhphân.Nếutpđãcónósb
xóa.
“rb” Mtpmiđđọctheokiunhphân.Nếutpkngcós
sinhrali.
“ab” Mtptheokiunhphân để ghibsungvàocuitp.Nếu
tpchưacóstotpmi.
“r+b” Mtpmiđđọc/ghitheokiunhphân.Nếutpkng
ssinhrali.
w+b” Mtpmiđđọc/ghitheokiunhphân.Nếutpđãcónós
bxóa.
“a+b” Mtptheokiunhphân đđọc/ghibsungvàocuitp.
Nếutpchưacóstotpmi.
Lp trình nâng cao -Chương 09 -N Công Thng 10
1. Ghi d liu ra tp nh phân (tiếp)
lB2:Ghidliuratpbngmfwrite()
fwrite(ptr, size, n, fp);
trong đó:+)ptrlàcontrtrtivùngnhchacácphnt
dliucnghi.
+)sizelàkíchthướcphnttheobyte.
+)nlàsphntcnghi.
+)fplàcontrtp.
Nếucólikhôngghi được,hàmtrv0.Nếukngcóli
hàmtrvsphntghi được.
Víd:
FILE*fp=fopen(songuyen.dat,wb”);
inta=200;
fwrite(&a,sizeof(a),1,fp);