Ngôn ngữ lập trình C - Chương 5 potx

29 312 0
Ngôn ngữ lập trình C - Chương 5 potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ch Ch −¬ −¬ ng ng 5 5 Thao t Thao t ¸ ¸ c v c v í í i t i t Ë Ë p tin p tin v v μ μ giao tiÕp v giao tiÕp v í í i i h h Ö Ö th th è è ng ng Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 2 5.1 Lu 5.1 Lu å å ng d ng d ÷ ÷ li li Ö Ö u v u v µ µ t t Ë Ë p tin p tin  5.1.1 Lung d liu và thao tác vào/ra – Lung d liu : • Phng tin trao đi thông tin đc lp vi các thit b truy xut (còn gi là kênh nhp/xut). • H thng to ra mt thit b logic tng ng vi thit b vào/ra, gi là lung d liu hay kênh nhp/xut (thng đng nht vi tp). • S dng các hàm trong th vin stdio.h – Các lung d liu chun: quy đnh cho các thit b chun • Bao gm các lung vào (stdin), ra (stdout), báo li (stderr), ph tr (stdaux), in (stdprn). • Thông thng là bàn phím, màn hình, cng COM1, máy in trên PRN hay LPT1. Tuy vy HH có th hng đn thit b khác. Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 3 5.1 Lu 5.1 Lu å å ng d ng d ÷ ÷ li li Ö Ö u v u v µ µ t t Ë Ë p tin p tin  5.1.2 Tp tin – Vn đ lu tr d liu • Tc đ (b nh trong, b nh ngoài), cách thc truy nhp… • Thi gian lu tr: – Lu tr tm thi: trong thi gian chy chng trình. – Lu tr lâu dài: s dng nhiu ln, trao đi d liu, … – Tp tin • Tp hp d liu có liên quan vi nhau và có cùng kiu, đc lu tr trên b nh ngoài. –  cho gn, t gi tr đi ta dùng thut ng tp. • Tp cha d liu hiu theo ngha rng : chng trình, s liu, các kiu d liu nh kí t, vn bn, … Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 4 5.1 Lu 5.1 Lu å å ng d ng d ÷ ÷ li li Ö Ö u v u v µ µ t t Ë Ë p tin p tin  5.1.2 Tp tin – H thng tp: • Mô t cách thc t chc lu tr thông tin. – Cu trúc thông dng nht là cu trúc cây. • ng dn: truy nhp ti tp theo đng đi trên cây tính t gc. • Th tp: truy nhp ti tp theo s hiu tp. – Là mt s nguyên đc HH cung cp cho tp khi to hay m tp. – Các thông tin v tp (đã m): mô t đc đim ca tp • Các thuc tính ca tp : c trng thái đc/ghi. – C++ s dng các hng S_IREAD, S_IWRITE ( đc, ghi ). –  kim tra các thuc tính này, s dng hàm access(). • Kích thc và trng thái : cho bit s byte và trng thái ca tp. – S dng các hàm nh filelength, chsize, … • Ch đ truyn: kiu nh phân hay kiu vn bn. Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5 5.1 Lu 5.1 Lu å å ng d ng d ÷ ÷ li li Ö Ö u v u v µ µ t t Ë Ë p tin p tin  5.1.3 Thao tác vào/ra vi tp tin – Các kiu vào/ra vi tp: • Mc cao (qua vùng đm) và mc thp (không qua vùng đm) – C++ không cung cp c ch vào/ra å s dng các hàm vào/ra trong các th vin do trình dch cung cp. • Vào/ra mc cao ~ qua vùng đm: s dng b đm (vùng nh trung gian) do chng trình (thc cht là trình dch) cung cp. • Vào/ra mc thp ~ trc tip ~ mc h thng (tuy nhiên vn có b đm do HH cung cp). – Th vin h tr vào/ra: stdio.h • Tùy theo kiu vào/ra å s dng các th vin thích hp • Tùy vào vic gn các hàm này vi thit b vào/ra nào, d liu s đc chuyn t/đn thit b đó (màn hình, bàn phím, tp, …) Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 6 5.2 Thao t 5.2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5.2.1 Khái nim chung – Con tr tp: • Là con tr kiu FILE – Tr ti vùng nh cha thông tin xác đnh đc tính tp. – Các đc tính này bao gm: tên, trng thái, v trí hin thi ca con tr. VD: FILE *fp1, *fp2; • Con tr tp xác đnh mt tp trên b nh ngoài tng ng vi mt kênh nhp/xut và liên kt chúng vi nhau. – Các thao tác vào/ra c bn: • M, đóng tp, đc, ghi d liu, … – Chú ý các ch đ truy nhp: r, w, a, r+, … • Các hàm thông dng: fopen, fclose, putc, getc, … • Các hàm khác: xem TLTK. Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 7 5.2 Thao t 5.2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5.2.2 Các hàm vào/ra mc cao – Các hàm c bn: fopen: m tp, tham s là đng dn tp và ch đ truy nhp. VD: fp1 = fopen("C:\\VIDU\\VD1.TXT","rb"); char fn[20]; gets(fn); fp2 = fopen(fn,"wt"); fclose: đóng tp, tham s là con tr tp. VD: fp1 = fclose(fp1); – Các ch đ truy nhp cho hàm fopen: “r”: m tp ch đc, li nu tp không tn ti. “w”: m tp đ ghi, nu tp đã tn ti, ni dung s b xóa ht. “r+”: m tp đ đc và ghi, li nu tp không tn ti. “a”, “a+”: m tp ghi thêm d liu vào cui, tp s đc to mi nu cha tn ti. Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 8 5.2 Thao t 5.2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5.2.2 Các hàm vào/ra mc cao – Các hàm c bn (tip) getc, fgetc: đc kí t t tp, tham s là con tr tp. putc, fputc: ghi kí t lên tp, tham s là kí t và con tr tp. VD: int c; //hoc char c; c = getc(fp1); putc(c, fp2); fputc(10, fp2); feof: kim tra cui tp, tham s là con tr tp. VD: int kt = feof(fp1); fflush: làm sch b đm, tham s là con tr tp. VD: fflush(fp1); – Các hàm c bn khác: xem TLTK. Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 9 5.2 Thao t 5.2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5.2.2 Các hàm vào/ra mc cao – Các hàm đc/ghi d liu cho kiu vn bn: fgets: đc xâu kí t t tp. fputs: ghi xâu kí t lên tp. VD: char d[256]; fgets(d, 256, fp1); fputs(d, fp2); fscanf: đc d liu theo khuôn dng t kênh nhp/xut (thng là tp). fprintf: ghi d liu theo khuôn dng lên kênh nhp/xut (thng là tp). VD: float x, y; fscanf(fp1, "%f%f", &x, &y); fprintf(fp2, “(%5.2f, %4.3f)\n", x, y); – Các hàm dùng cho kiu vn bn khác: xem TLTK Bài ging C++. 15/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5.2 Thao t 5.2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5.2.2 Các hàm vào/ra mc cao – Các hàm đc/ghi d liu cho kiu nh phân: getw: đc s nguyên t tp. putw: ghi s nguyên lên tp. VD: int i; i = getw(f); putw(i, fp1); fread: đc d liu theo khi t kênh nhp/xut (thng là tp). fwrite: ghi d liu theo khi lên kênh nhp/xut (thng là tp). VD: char c[100]; fread(c, 1, 100, fp1); fwrite(c, 1, 100, fp2); – Các hàm dùng cho kiu nh phân khác: xem TLTK [...]... c c máy PC (k t qu cu i c ng là nh nhau) – DOS (c ng nh c c H H kh c) cung c p c c hàm m c cao (m c H H) truy nh p vào ph n c ng c a h th ng C c d ch v này d a c s trên c c d ch v c a BIOS, chúng ph c t p h n và c nhi u ch c n ng h n (T t nhiên chúng ph i g i t i c c hàm c a BIOS hoàn thành c ng vi c c a mình) V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 4 Giao tiÕp víi hÖ thèng 5. 4.1... kh c cho c c ngôn ng kh c mà b n thân chúng l i g i t i t p API c s • Ví d c c hàm C trong th vi n C cung c p c c d ch v DOS qua ng t INT 0x21, c c d ch v t ng ng c a DOS c g i tùy thu c vào giá tr t vào thanh ghi • Ví d kh c v API : UNIX c vi t b ng C å cung c p m t th vi n hàm C JavaOS c vi t b ng Java å cung c p t p h p c c l p Java V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 4... ftell(fp); – C c hàm vào/ra ng u nhiên kh c: xem TLTK V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 2 Thao t c vµo/ra tÖp m c cao 5. 2.4 C i t c c thao t c vào/ra d li u å Bài t p l n! – c c c tài li u c liên quan – L p trình c i t • C i t c c thao t c vào/ra v i ngu n d li u x c nh å k t h p v i c c BTL s 1 và s 2 (xem ch ng 3) • Chú ý n tính chính x c và h p lý c a vi c l u tr và truy... trùm lên C, ngoài c c ph ng th c m i, v n s d ng l i c c thao t c vào/ra c a C • G n g i v i c c thao t c truy xu t c a máy: – Ch ng trình dùng c c hàm này s hi u qu h n, nhanh h n song làm vi c v i chúng khó và ph c t p h n V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 2 Thao t c vµo/ra tÖp m c thÊp 5. 3.2 C c hàm vào/ra m c th p thông d ng – T p tin tiêu và bi n chu n • S d ng c c t p tiêu... tiên c a ng t: – Ng t c th tr u tiên cao s c CPU th c hi n tr c – u tiên cao nh t dành cho ng t không che c (NMI) Ng t lo i này c nh báo CPU v m t l i ph n c ng nghiêm tr ng • B ng véct ng t: – B ng véct ng t (IVT) ch a a ch c a thao t c s c th c hi n (khi ng t t ng ng c sinh ra) Chi ti t h n xem TLTK – C t t c 256 ng t, m i ng t chi m 4 byte b nh å t ng c ng 1KB Chúng chi m a ch t 0x00 n 0xFF – C ... không c cung c p vùng m – V nguyên t c, c c hàm này không c nh ngh a trong ANSI C – C c hàm vào/ra m c th p là c s xây d ng c c hàm vào/ra m c cao å vi c tìm hi u chúng v n c ý ngh a nh t nh • Duy trì tính k th a và kh n ng t ng thích: – Tính l ch s : C phát tri n trên n n UNIX, sau ó m r ng sang c c n n kh c å gi l i c c thao t c vào/ra m c th p duy trì tính k th a và kh n ng t ng thích – C+ + bao... c nhi u d ch v con g n v i m t ng t, chúng c ng c ánh s trong h 16 V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 4 Giao tiÕp víi hÖ thèng 5. 4.1 Giao ti p v i h th ng s d ng th vi n dos.h – Ng t và x lý ng t (ti p) • C c d ch v c a DOS và BIOS: – BIOS cung c p c c hàm m c th p (m c h th ng) truy nh p vào ph n c ng c a h th ng Vi c g i m t d ch v c a BIOS c t c ng nh nhau trên t t c c c. .. p) • C c nhóm ch c n ng trong Windows API (ti p): – C c d ch v m ng: • Cho phép giao ti p gi a c c ng d ng trên c c máy tính kh c nhau trên m ng, t o, qu n lý c c k t n i chia s tài nguyên (th m c, máy in m ng, …) – Giao di n ng i dùng: • Cung c p cho ng d ng c c ph ng i dùng (GUI) ng ti n t o và qu n lý giao di n – Windows Shell: • T ch c c c i t ng (t p, th m c, i t ng o,…) thành c u tr c phân c p... ng t m m • Th t c x lý: – M i ng t m m c x c nh b i m t c p 2 s nguyên h 16, s hi u và ch c n ng – C c b c c b n g i ng t: t s hi u ch c n ng vào AH ; x c nh c c tham s u vào, a chúng vào c c thanh ghi theo yêu c u c a m i ng t ; th c hi n c u l nh g i ng t theo s hi u ng t ; l y k t qu do ng t sinh ra (tham s u ra) t c c thanh ghi – C 2 ph ng pháp ch y u g i ng t : (s d ng c c hàm kh c nhau trong th... thành ph n c u tr c – Windows API nh ngh a kích th c và ý ngh a c a c c thành ph n này, s d ng th (handle) tham chi u t i m t tài nguyên – H u h t tên c a c c ki u con tr c b t u b ng ch P ho c LP C m t s ki u ã quen thu c v i h u h t trình d ch C+ + (character, boolean, interger, …) – Chi ti t h n v c c ki u d li u này, xem TLTK V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 15/ 10/2008 5. 4 Giao tiÕp . (c ng nh c c HH kh c) cung c p c c hàm m c cao (m c HH) đ truy nhp vào phn c ng c a h thng. C c dch v này da c s trên c c dch v c a BIOS, chúng ph c tp hn và c nhiu ch c nng. t 5. 2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5. 2.2 C c hàm vào/ra m c cao – C c hàm c bn (tip) getc, fgetc: đ c kí t t tp, tham s là con tr tp. putc, fputc:. khoa CNTT, HXD 5. 2 Thao t 5. 2 Thao t ¸ ¸ c v c v µ µ o/ra t o/ra t Ö Ö p m p m ø ø c cao c cao  5. 2.4 C i đt c c thao t c vào/ra d liu å Bài tp ln! –  c c c tài liu c liên quan – Lp trình

Ngày đăng: 06/08/2014, 01:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan