Danh mục

Chương 3: Nhập và xuất dữ liệu

Số trang: 24      Loại file: pdf      Dung lượng: 155.89 KB      Lượt xem: 16      Lượt tải: 0    
Hoai.2512

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Khái niệm: Trước đây chúng ta đã xét việc nhập dữ liệu từ bàn phím. Trong nhiều trường hợp thực tế, để thuận lợi, chúng ta phải nhập dữ liệu từ các tập tin trên đĩa. Các hàm thư viện của C cho phép truy cập tập tin và chia làm 2 cấp khác nhau
Nội dung trích xuất từ tài liệu:
Chương 3: Nhập và xuất dữ liệu Ch−¬ng 3 : NhËp vµ xuÊt d÷ liÖu §1. Kh¸i niÖm chung1. Kh¸i niÖm :Tr−íc ®©y chóng ta ®· xÐt viÖc nhËp d÷ liÖu tõ bµn phÝm. Trong nhiÒu tr−ênghîp thùc tÕ , ®Ó thuËn lîi , chóng ta ph¶i nhËp d÷ liÖu tõ c¸c tËp tin trªn ®Üa . C¸c hµm th−viÖn cña C cho phÐp truy cËp tËp tin vµ chia lµ 2 cÊp kh¸c nhau : - c¸c hµm cÊp 1 lµ c¸c hµm ë cÊp thÊp nhÊt , truy cËp trùc tiÕp ®Õn c¸c tËp tin trªn®Üa.C kh«ng cung cÊp vïng nhí ®Öm cho c¸c hµm nµy - c¸c hµm cÊp 2 lµ c¸c hµm truy xuÊt tËp tin cao h¬n , do chóng ®−îc C cung cÊpvïng nhí ®Öm §èi víi c¸c hµm cÊp 1 , tËp tin ®−îc xem lµ khèi c¸c byte liªn tôc do ®ã khi muèntruy cËp mÉu tin cô thÓ th× ph¶i tÝnh to¸n ®Þa chØ cña mÉu tin vµ nh− vËy c«ng viÖc vÊt v¶h¬n . Ngoµi ra ph¶i cung cÊp vïng nhí ®Öm cho kiÓu ®äc ghi nµy. §èi víi c¸c hµm cÊp haic«ng viÖc nhÑ nhµng h¬n do : - tr×nh biªn dÞch tù ®éng cung cÊp vïng kÝ øc ®Öm cho chóng - cã thÓ truy xuÊt c¸c mÉu tin mµ kh«ng gÆp khã kh¨n nh− víi c¸c hµm cÊp 1 Trong C , c¸c th«ng tin cÇn thiÕt cho c¸c hµm xuÊt nhËp cÊp 2 ®−îc ®Æt trong tËp tinstdio.h cßn c¸c th«ng tin vÒ hµm nhËp xuÊt cÊp 1 th× ë trong tËp tin io.h2. Stream vµ c¸c tËp tin : Ta ph¶i ph©n biÖt hai thuËt ng÷ lµ stream vµ file .HÖ thèng xuÊtnhËp cña C cung cÊp mét kh«ng gian t−ëng t−îng gi÷a ng−êi lËp tr×nh vµ c¸c thiÕt bÞ ®−îcdïng . CÊp trung gian t−ëng t−îng nµy gäi lµ stream vµ thiÕt bÞ cô thÓ lµ tËp tin . a. C¸c streams : Trong m¸y tÝnh ta dïng 2 lo¹i stream : v¨n b¶n vµ nhÞ ph©n . Métstream v¨n b¶n lµ mét lo¹t kÝ tù ®−îc tæ chøc thµnh dßng mµ mçi dßng ®−îc kÕt thóc b»ngkÝ tù xuèng dßng newline(“ ”) . Khi ghi , mét kÝ tù chuyÓn dßng LF(m· 10) ®−cî chuyÓnthµnh 2 kÝ tù CR( m· 13) vµ LF . Khi ®äc 2 kÝ tù liªn tiÕp CR vµ LF trªn tËp tin chØ cho tamét kÝ tù LF . Mét stream nhÞ ph©n lµ mét lo¹t c¸c byte . a. C¸c tËp tin : Trong C ,mét tËp tin lµ mét kh¸i niÖm logic mµ hÖ thèng cã thÓ ¸pdông cho mäi thø tõ c¸c tËp tin trªn ®Üa cho ®Õn c¸c terminal . Khi b¾t ®Çu thùc hiÖnch−¬ng tr×nh , m¸y tÝnh më 3 stream v¨n b¶n ®· ®−îc ®Þnh nghÜa tr−íc lµ stdin , stdout vµstderr . §èi víi hÇu hÕt c¸c hÖ thèng , c¸c thiÕt bÞ nµy lµ console §2. NhËp xuÊt chuÈn1. NhËp xuÊt kÝ tù , chuçi kÝ tù , ®Þnh d¹ng vµ b¶n ghi : NhËp xuÊt cÊp 2(nhËp xuÊt chuÈn) cung cÊp 4 c¸ch ®äc vµ ghi d÷ liÖu kh¸c nhau (ng−îc l¹i nhËp xuÊt c©p1 chØ dïng 1 trong 4c¸ch nµy) . Tr−íc hÕt d÷ liÖu cã thÓ ®äc ghi mçi lÇn mét kÝ tù , t−¬ng tù nh− c¸ch lµm viÖc cñaputchar() vµ getche() ®Ó ®äc d÷ liÖu tõ bµn phÝm vµ hiÓn thÞ lªn mµn h×nh . Thø hai , d÷ liÖu cã thÓ nhËp xuÊt theo chuçi b»ng c¸c dïng c¸c hµm gets() vµ puts() Thø ba , d÷ liÖu cã thÓ ®−îc nhËp vµ xuÊt theo khu«n d¹ng b»ng c¸c hµm fprintf() vµfscanf() Thø t− , d÷ liÖu ®−îc ®äc vµ ghi theo khèi cã chiÒu dµi cè ®Þnh th−êng dïng l−u tr÷m¶ng hay cÊu tróc b»ng c¸c hµm fread() vµ fwrite() . Tãm l¹i : C¸c hµm dïng chung cho hai kiÓu nhÞ ph©n vµ v¨n b¶n fopen : dïng më tËp tin 21 fclose : ®ãng tËp tin fclose : ®ãng tÊt c¶ c¸c tËp tin fflush : dïng lµm s¹ch vïng ®Öm cña tËp tin flushall : dïng lµm s¹ch vïng ®Öm cña tÊt c¶ tËp tin ferror : cho biÕt cã lçi (kh¸c kh«ng) hay kh«ng cã lçi ( b»ng 0) perror : thong b¸o lçi trªn mµn h×nh foef : cho biÕt cuèi tËp tin hay ch−a unlink vµ remove : dïng ®Ó lo¹i tËp tin trªn ®Üa fseek : di chuyÓn con trá ®Õn vÞ trÝ bÊt k× trªn tËp tin ftell : cho biÕt vÞ trÝ hiÖn t¹i cña con trá C¸c hµm nhËp xuÊt kÝ tù putc vµ fputc : nhËp kÝ tù vµo tËp tin getc vµ fgetc : ®äc kÝ tù tõ tËp tin fprintf : dïng ghi d÷ liÖu ®Þnh d¹ng lªn tËp tin fscanf : dïng ®äc d÷ liÖu ®Þnh d¹ng tõ tËp tin fputs : dïng ghi chuçi lªn tËp tin fgets : dïng ®äc chuçi tõ tËp tin C¸c hµm dïng cho kiÓu xuÊt nhËp nhÞ ph©n putw : dïng ghi mét sè nguyªn hai byte lªn tËp tin gets : dïng ®äc mét sè nguyªn hai byte tõ tËp tin fwrite : dïng ghi mét mÉu tin lªn tËp tin fread : dïng ®äc mét mÉu tin tõ tËp tin2.D¹ng v¨n b¶n vµ d¹ng nhÞ ph©n : C¸ch kh¸c ®Ó ph©n lo¹i c¸c thao t¸c nhËp xuÊt tËp tinlµ nã ®−îc më theo kiÓu v¨n b¶n hay nhÞ ph©n . §iÓm kh¸c biÖt gi÷a hai lo¹i nµy lµ kÝ tùnewline vµ end of line . §iÓm thø hai ®Ó ph©n biÖt hai kiÓu tËp tin lµ lµ c¸ch l−u tr÷ c¸c sèvµo ®Üa . §èi víi d¹ng v¨n b¶n th× c¸c sè ®−îc l−u tr÷ thµnh chuçi c¸c kÝ tù cßn d¹ng nhÞph©n th× c¸c sè ®−îc l−u nh− trong bé nhí , nghÜa lµ dïng hai byte cho mét sè nguyªn vµ 4byte cho mét sè float .3. NhËp xuÊt chuÈn : Ch−¬ng tr×nh dïng c¸c hµm nhËp xuÊt cÊp 2 th−êng dÔ hiÓu h¬n nªnchóng ta sÏ nghiªn cøu tr−íc . a. NhËp xuÊ ...

Tài liệu được xem nhiều: