1. Trang chủ
  2. » Công Nghệ Thông Tin

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

29 312 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 348,19 KB

Nội dung

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Ừ KHÓA LIÊN QUAN

w