KTLT Struct File
Transcript of KTLT Struct File
-
8/3/2019 KTLT Struct File
1/19
Struct & File
-
8/3/2019 KTLT Struct File
2/19
Struct & File
Struct Kiu d liu t nh ngha c cu tr To v s dng struct Khai bo v truyn tham s kiu struct cho hm
Truyn gi tr Truyn tham chiu
File Tp tin To, c, ghi, v cp nht file Truy xut file tun t Truy xut file ngu nhin
-
8/3/2019 KTLT Struct File
3/19
Struct
L mt kiu d liu: Tp hp nhiu thnh phn c lin quan v nghvi nhau Cc thnh phn c th thuc nhiu kiu c s khnhau
typedef struct SinhVien{char HoTen[60] ;int Tuoi ;float DiemTB ;
};
T kha ch nh y l kiu struct
Tn ca kiu struct v dng khai bo bi
Kiu SinhVien c 3thnh phn d liu
-
8/3/2019 KTLT Struct File
4/19
Struct
nh ngha kiu struct Khng th cha mt thnh phn d liu l chnh C th cha mt thnh phn d liu l con tr trchnh kiu struct ny Mt nh ngha struct khng thc s chim gi bnh
Khai bo bin thuc kiu struct SinhVien sv, a, b, *ptrSV;SinhVien DanhSachSV[100];
-
8/3/2019 KTLT Struct File
5/19
Struct
Cc ton t hp l Php gn
SinhVien a, b, dssv[100];a = b; dssv[50] = a;
Ton t ly a ch (&)
Truy xut cc thnh phn d liu (., -> )a.Tuoi = 20; dssv[20] .DiemTB = 10.0;
Ton t sizeof dng ly kch thc thc tnh theo
byte ca kiu struct
-
8/3/2019 KTLT Struct File
6/19
Struct#include #include typedef struct SinhVien {
char HoTen[60];int Tuoi;float DiemTB;
};int main(){
SinhVien dssv[10];int n; float t;printf( S lng sinh vin: );scanf( %d, &n);
for (int i=0; i
-
8/3/2019 KTLT Struct File
7/19
Struct
Truyn tham s cho hm Truyn ton b bin kiu struct Ch truyn mt / nhiu thnh phn d liu (.) Truyn theo gi tr Truyn theo tham chiu
void NhapSV(SinhVien &sv);void XuatSV(SinhVien sv);void DauRot(float diem);
-
8/3/2019 KTLT Struct File
8/19
Struct#include #include typedef struct SinhVien {
char HoTen[60];int Tuoi;
float DiemTB;};void NhapSV(SinhVien &sv);void XuatSV(SinhVien sv);void DauRot(float diem);int main(){
SinhVien dssv[10];int n; float t;
printf( S lng sinh vin: );
scanf( %d, &n);for (int i=0; i
-
8/3/2019 KTLT Struct File
9/19
Structvoid NhapSV(SinhVien &sv){
printf( H tn: ); scanf( %s, dssv[i].HoTen);printf( Tuoi: ); scanf( %d, &dssv[i].Tuoi);printf( Diem TB: ); scanf( %f, &t); dssv[i].DiemTB = t;
}
void XuatSV(SinhVien sv){
printf( H tn: %s \ n, dssv[i].HoTen);printf( Tuoi: %d \ n, dssv[i].Tuoi);
printf( Diem TB: %f \ n, dssv[i].DiemTB);}void DauRot(float diem){
if (diem>=5) printf(==> U \ n);else printf(==> RT \ n); }
-
8/3/2019 KTLT Struct File
10/19
File
Dng lu tr bn vng nhng d liu trongchng trnh
D liu lu tr trong bin lun ch l tm thi L mt dy tun t cc byte d liu Kt thc bng mt k t c bit (^Z)
C qun l file m bng mt bin kiu FIL stdinstdoutstderr
-
8/3/2019 KTLT Struct File
11/19
File - M / ng file fopen : M file c / to file mi
FILE* fopen(const char* filename,const char* mode);
FILE* f = fopen(thotinh.txt,rt); fclose : ng file m
int fclose(FILE* f);fclose(f)
feof : Kim tra cui file ? int feof (FILE* f);
if ( feof (f) )
Mode ngha r M file ch c.
w To file mi ghi. Nu file c, nidung ca n s b xa b.
a Thm vo; m hay to file mi ghi v
cui file.
r+ M file cp nht (c v ghi).
w+ To file mi cp nht. Nu file cni dung ca n s b xa b.
a+ Thm vo; m hay to file cp nht;thao tc ghi c thc hin cui file.
rb M file ch c trong ch nh phn wb To file ghi trong ch nh phn. N
file c, ni dung ca n s b xa b. ab Thm vo; m hay to file mi ghi v
cui file trong ch nh phn. rb+ M file cp nht (c v ghi) trong ch
nh phn. wb+ To file mi cp nht trong ch nh
phn. Nu file c, ni dung ca n s xa b.
ab+ Thm vo; m hay to file cp nhttrong ch nh phn; thao tc ghi cthc hin cui file.
Cc ch m file
-
8/3/2019 KTLT Struct File
12/19
Text File
Cc hm trong th vin chun () fgetc : c 1 k t t file
int fgetc (FILE* f)int kytu = fgetc (f);
fputc : Ghi 1 k t vo file int fputc (int c, FILE* f)
fputc (A, f); fgets : c 1 chui k t (1 dng) t file
int fgets (char*s, int n, FILE* f)char HoTen[60]; fgets (HoTen, 60, f);
-
8/3/2019 KTLT Struct File
13/19
Text File
Cc hm trong th vin chun () fputs : Ghi 1 chui k t (1 dng) vo file
int fputs (char* s, FILE* f)
fputs (Nguyn Vn A, f); fscanf / fprintf : Tng t nhscanf / printf nhnghot ng trn file
int fscanf (FILE* f, const char* format [, arglist ] )int fprintf (FILE* f, const char* format [, arglist ] )fscanf(f, %i, &n); fprintf(f, %i + %i = %i, a, b, tong);
-
8/3/2019 KTLT Struct File
14/19
Text File
3Trn Vn A 23
8.65Cng Tng Tn N Ngc Din L Th Hng Nga 804.9Trn Trng Trc 199.2
-
8/3/2019 KTLT Struct File
15/19
Text Filevoid GhiSV (FILE* f, SinhVien sv){
fprintf(f, %s \n%d\n%f\ n,sv.HoTen,sv.Tuoi,
sv.DiemTB);}
void DocSV (FILE* f, SinhVien &sv){
float t;fgets(sv.HoTen, 60, f);fscanf(f, %d, &sv.Tuoi);fscanf(f, %f, &t);sv.DiemTB = t;
}
int GhiDSSV (SinhVien dssv[], int n) {FILE* f = fopen( sv.txt, w);if (f==NULL) return 0;fprintf(f, %d \ n, n); for (int i=0; i
-
8/3/2019 KTLT Struct File
16/19
Text Fileint CopyTextFile( char* nguon, char* dich){
FILE* fnguon = fopen(nguon, r);FILE* fdich = fopen(dich, w);if (fnguon==NULL || fdich==NULL) return 0;
char kytu;while ( !feof (fnguon) ){
kytu = fgetc(fnguon);
fputc(kytu, fdich);}fclose(fnguon); fclose(fdich);return 1;
}
-
8/3/2019 KTLT Struct File
17/19
Binary File
3Trn Vn A 23
8.65Cng Tng Tn N Ngc Din L Th Hng Nga 804.9
Trn Trng Trc 199.2
Chiu di c nh:sizeof(SinhVien)
-
8/3/2019 KTLT Struct File
18/19
Binary File
D liu c lu tr theo dng th (raw),thng khng th c bng mt. Cc hm dng cho binary file:
int fwrite (void* data, size_t size, int n, FILE* f);int fread (void* data, size_t size, int n, FILE* f);fwrite (&sv, sizeof(sinhvien), 1, f);fread (&sv, sizeof(sinhvien), 1, f);fwrite (dssv, sizeof(sinhvien), n, f);
-
8/3/2019 KTLT Struct File
19/19
File Truy xut ngu nhin fseek: Di con tr c, ghi ca file n v trc th c cung cp
int fseek(FILE* f, long offset, int start);SEEK_SET: u file SEEK_END: cui file SEEK_CUR: v tr hin ti
fseek(f, sizeof(sinhvien)*5, SEEK_SET);fseek(f, -sizeof(sinhvien), SEEK_END);fseek(f, sizeof(sinhvien), SEEK_CUR);