Kurt Nørmark ©
Institut for Datalogi, Aalborg Universitet
Sammendrag Forrige lektion Stikord Referencer Indhold | I denne lektion beskriver vi filbegrebet og de forskellige operationer på filer. Vi slutter af med en diskussion af hvordan structures can udskrives på filer og indlæses fra filer. |
Introduktion til filer |
Oversigt over filbegreber Slide Indhold Stikord Referencer Lærebog |
|
|
|
Sekventielle filer Slide Indhold Stikord Referencer Lærebog |
|
Begrebet sekventiel fil: En sekventiel fil læses altid i den rækkefølge den er skrevet. Rækkefølgen af enheder i en sekventiel fil afspejler direkte rækkefølgen af de udførte skriveoperationer på filen. |
|
Random access filer Slide Indhold Stikord Referencer Lærebog |
|
Filer i C |
Sekventielle filer i C Slide Indhold Stikord Referencer Lærebog |
|
|
Filbuffering Slide Indhold Stikord Referencer Lærebog |
|
Figur. En illustration af filbuffere mellem den ydre enhed og programmet | ![]() |
Strukturen FILE Slide Indhold Stikord Referencer Lærebog |
|
|
|
Simpel skrivning og læsning af en fil Slide Indhold Stikord Referencer Lærebog |
|
Program: Skrivning af tegn fra en tekststreng på en tekstfil. |
|
Program: Læsning af tegn fra en tekstfil til en tekststreng. |
|
|
Program: Et program der laver dobbelt linieafstand i en tekstfil. |
|
|
Standard input, output og error Slide Indhold Stikord Referencer Lærebog |
|
|
|
|
Fil opening modes Slide Indhold Stikord Referencer Lærebog |
|
Tabel. En tabel der beskriver betydningen af de forskellige opening modes af filer. |
|
Program: Tilføjelse af tegn til en tekstfil. |
|
Program: Læsning og skrivning af fil med r+ (kun på Unix). |
|
Program: Output fra ovenstående program (kørt på Unix). |
|
|
Funktioner på sekventielle filer Slide Indhold Stikord Referencer Lærebog |
|
|
Funktioner på random access filer Slide Indhold Stikord Referencer Lærebog |
|
|
Program: Et program der læser en fil baglæns. |
|
Formateret output og input |
Formateret output - printf familien (1) Slide Indhold Stikord Referencer Lærebog |
|
|
|
Formateret output - printf familien (2) Slide Indhold Stikord Referencer Lærebog |
|
Figur. Nedbrydning af kontrolstrengen for %-#08.3hd. Denne figur er inspireret fra 'A C Reference Manual' af Harbison & Steele | ![]() |
|
Formateret output - printf familien (3) Slide Indhold Stikord Referencer Lærebog |
|
|
Program: Illustration af *.* field width og precision . |
|
|
Formateret input - scanf familien (1) Slide Indhold Stikord Referencer Lærebog |
|
|
|
Formateret input - scanf familien (2) Slide Indhold Stikord Referencer Lærebog |
|
|
Program: Illustration af directives med almindelige tegn, samt brug af scan width. |
|
Formateret input - scanf familien (3) Slide Indhold Stikord Referencer Lærebog |
|
|
Formateret input - scanf familien (4) Slide Indhold Stikord Referencer Lærebog |
|
Program: Et program der læser ikke-blanke liner fra en fil og udskriver disse på standard output. |
|
Program: Et andet program der adskiller alfabetiske og numeriske afsnit i en tekst - læser fra stdin. |
|
Program: Et andet program der adskiller alfabetiske og numeriske afsnit i en tekst - læser fra en streng - virker ikke. |
|
Program: Et andet program der adskiller alfabetiske og numeriske afsnit i en tekst - læser fra en streng - virker!. |
|
Input og output af structures |
Input/Output af structures (1) Slide Indhold Stikord Referencer Lærebog |
|
Program: Programmet der udskriver bøger på en output fil. |
|
Program: Programmet der indlæses bøger fra en input fil. |
|
Program: Header filen book-read-write.h. |
|
Program: Implementationen af biblioteket - book-read-write.c. |
|
Program: Compilering af programmerne. |
|
Opgave 10.2. Input og Output af structs | Vi vil antage at vi har en struct som beskriver data om en person, så som struct person { char *name; int age; char sex; }hvor sex er enten tegnet 'm' eller 'f'. I denne øvelse bliver du bedt om at programmere funktioner, som kan udskrive et antal personer på en fil, og som efterfølgende kan indlæse disse igen. Konkret, skal der skrives to funktioner print_person(person *p, FILE *ofp) person *read_person(FILE *ifp) Du kan vælge en tekst-baseret og linie-orienteret fremgangsmåde, som illustreret ved forelæsningen. Som et noget lettere alternativ kan du vælge at anvende en binær fremgangsmåde ved brug af fwrite og fread. |
Input/Output af structures (2) Slide Indhold Stikord Referencer Lærebog |
|
|
|
Binær input/output med fread og fwrite Slide Indhold Stikord Referencer Lærebog |
|
Program: Skrivning af en struct til en binær fil. |
|
Program: Tilsvarende læsning af en struct fra en binær fil. |
|
|
Program: Skrivning af en struct med et pointer felt til en binær fil. |
|
Program: Tilsvarende læsning af en struct fra en binær fil - virker ikke. |
|
Bemærkninger til Eksamensopgaven |
Arbejdsprocessen Slide Indhold Stikord Referencer |
|
Praktiske forhold og Redelighed Slide Indhold Stikord Referencer |
|
|
Samlede referencer Indhold Stikord |
|
Kapitel 10: Input/Output og Filer
Kursets hjemmeside Forfatteren's hjemmeside Om frembringelsen af disse sider Forrige lektion (top) Næste lektion (top) Forrige lektion (bund) Næste lektion (bund)
Genereret: 7. Juli 2010, 15:13:09