7/21/2019 Lp trnh C: Thao tc vi tp tin.
1/4
================ TP TIN ===============
- Tp tin l g ?
- Tp tin c chia lm 2 loi1/ Tp tin vn bn=> D liu th hin dng tng k t (Lu trong file *.txt)
=> mi ln l thao tc trn tng k t.
2/ Tp tin nh phn=> D liu th hin dng byte (Lu trong file *.DAT, *.DOC, *.PPT, *.XLSX)
=> Mi ln l thao tc trn nhiu byte d liu (kch thc do ta x l)
================== THAO TC TRN C ===================
Th vin h tr: #include
To i tng file dng con tr
C PHP: FILE *;vd:FILE *f; // To con tr f kiu file.
=========== CC BC THAO TC TRN FILE ============
B1: M file cn x l (c hoc ghi)+ B1.1: Nu ta m file c th phi kim tra xem file c tn ti hay cha
B2: X l (c hoc ghi)
B3: ng file li.
======================================================
Chi tit:
B1: M file
C php: FILE * = fopen("", "");
Hm tr v 1 a ch, nu nh khng c tn ti file th tr v l NULL,cn nu c th tr v a ch cho con tr file tr ti c a ch ny.
vd: c file
FILE *FileIn = fopen("INPUT.TXT", "r");vd: Ghi fileFILE *FileOut = fopen("OUTPUT.TXT", "w");
: S c 2 dng ng dn1/ ng dn tuyt i: D:\\XXX\\69.TXT hoc dng: D:/XXX/69.TXT2/ ng dn tng i: a tn file vo l c ri=> Nn dng cch 2.
Cc i s Mode v ngha:r => Read: M file c, nu nh file khng tn ti th s tr v NULLw => Write: M file ghi, nu nh file khng tn ti th s t ng to ra file mi.
Cn nu nh file tn ti ri th d liu trong file s b xa i ht ghi d li
a => Append: M file tip tc thm d liu vo cui, nu file cha h tn ti th
7/21/2019 Lp trnh C: Thao tc vi tp tin.
2/4
cn nu tn ti ri th d liu trc c gi nguyn, d liu tip tc thm vo cu
r+: Ging r nhng b sung thm tnh nng ghi.w+: Ging w nhng b sung thm tnh nng c.a+: Ging a nhng b sung thm tnh nng c.
ngoi ra c s phn bit r rng gia file nh phn v file vn bn
- file nh phn th cui c thm ch b- file vn bn th cui c thm ch t
vd:rt, at, wt, r+t, a+t, w+trb, ab, wb, r+b, a+b, w+b
nhng mc nh nu nh khng g ht th n t ng hiu l t (file vn bn)
B1.1: Kim tra file c tn ti hay khng ?
- Nu nh B1 m khng h tn ti file th con tr n ang l NULL nn ta s dng iu n
if(FileIn == NULL)=> file khng tn ti.tng ng nh sau:if(!FileIn)=> file khng tn ti.
B2: X l (c hoc ghi)
c file:C PHP: fscanf(, "", );
vd:
FILE *FileIn = fopen("INPUT.TXT", "r");int x;Ta cn c s nguyn trong file v lu vo bin x=> fscanf(FileIn, "%d", &x);
Lu : Phi c tham chiu (&)
Ghi file:C PHP:fprintf(, "", )
vd: fprintf(FileIn, "So nguyen trong chuong trinh la: %d", x);
Lu :i vi kiu chui th ta c th nhp bi c php: fscanf vi c t l %s nhng khng nn
vd: Chui l: "Nam Son"Nu dng fscanf vi c t l: %s => chui nhn c ch c ch "Nam"Nu dng fgets th chui nhn c y l "Nam Son"
C PHP: fgets(, )vd:char HoTen[30];fgets(FileIn, HoTen);
Nu mun ghi chui th dng fputs cng c m fprintf cng c. Nhng nn dng fprintf bhng th ghi vn bn km theo c.
7/21/2019 Lp trnh C: Thao tc vi tp tin.
3/4
B3: ng file li.C PHP: fclose();
vd:fclose(FileIn);
C php ng ht tt c: fcloseall();
================== Bi Tp =================
Bi 1: Vit chng trnh c vo 2 s nguyn a, b t tp tin INPUT.TXT ri tnh tng 2 sn OUTPUT.TXT
=> Xem Project1.
Bi 2: cng nh bi 1 nhng ta s chia hm con.
=> Xem Project2.
Bi 3: c 1 chui cha h tn lu trong file INPUT.TXT vo chng trnh v ghi ra tp tintheo tn .
vd:INPUT.TXTSon dep trai
OUTPUT.TXTChao Son dep trai
=> Xem Project3.
Bi 4: Cu trc file INPUT.TXT nh sau:- Dng u tin cha 1 s nguyn duy nht l s lng cc s c trong chng trnh.
- Dng tip theo cha ln lt cc s, mi s cch nhau bi 1 khong trng.
Yu cu:c dy s nguyn trn vo chng trnh, thc hin sp xp tng dn. Kt qu lu vo file
vd:INPUT.TXT54 2 1 5 3
OUTPUT.TXT1 2 3 4 5
=> Xem Project4.
Bi 5: Cu trc file INPUT.TXT nh sau:- Mt dng duy nht cha cc s, mi s cch nhau bi 1 khong trng.
Yu cu:c d liu t file v lu vo mng, sau sp xp mng tng dn. Kt qu ghi vo file OU
vd:
INPUT.TXT5 2 3 4 1
7/21/2019 Lp trnh C: Thao tc vi tp tin.
4/4
OUTPUT.TXT1 2 3 4 5
=> Xem Project5.
==================== CON TR CH V TRN FILE ============
C PHP:fseek(, , )
:- Nu l s dng tc l dch chuyn ln- Nu l s m tc l dch chuyn xung- Nu l 0 tc l khng dch
:- Nu mun bt u tnh t u file th ta s l SEEK_SET hoc ghi s 0- Nu mun bt u tnh t v tr hin ti con tr ang ng th ta s l SEEK_CUR hoc- Nu mun bt u tnh t cui file th ta s l SEEK_END hoc ghi s 2
vd:fseek(FileIn, 2, SEEK_CUR); // Dch ln 2 byte k t v tr hin ti con tr ang ng.
fseek(FileIn, -5, 2); // Dch li xung 5 byte k t v tr cui file
fseek(FileIn, 3, 0); // Dch ln 3 byte k t v tr u file.
Lu : Nu phm vi byte dch chuyn b ri vo 1 vng khng hp hp l th chng trnh s
Bi 6: Cho cu trc file INPUT.TXT cha thng tin 2 phn s, mi phn s nm trn 1 dng.hn s vo v tnh tng/hiu/tch/thng ca 2 phn s (kt qu phi c rt gn). Kt
vd:INPUT.TXT1/23/4
OUTPUT.TXTTong: 5/4Hieu: -1/4Tich: 3/8Thuong: 2/3
=> Xem Project6.
Top Related