Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Σχετικά έγγραφα
Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 )

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Διάλεξη 18η: Διαχείρηση Αρχείων

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ιαφάνειες παρουσίασης #6 (β)

Δομημένος Προγραμματισμός (ΤΛ1006)

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Ανάπτυξη και Σχεδίαση Λογισμικού

Αντικειµενοστρεφής Προγραµµατισµός

Επεξεργασία Αρχείων Κειµένου

Βασικά της γλώσσας JAVA

Εισαγωγή στον Προγραμματισμό

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Μεθόδων Επίλυσης Προβλημάτων

Δομημένος Προγραμματισμός (ΤΛ1006)

Μεθόδων Επίλυσης Προβλημάτων

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Επανάληψη για τις Τελικές εξετάσεις

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μεθόδων Επίλυσης Προβλημάτων

C: Από τη Θεωρία στην Εφαρμογή

Εργαστήριο 9: Αρχεία

Διαδικασιακός Προγραμματισμός

Περιεχόμενα. Πρόλογος... 17

Προγραμματισμό για ΗΜΥ

FILE *fopen(const char *fname, const char *mode) void fclose(file *f) void fflush(file *f)

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμό για ΗΜΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Περιεχόµενα. Πρόλογος... 15

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Δομημένος Προγραμματισμός (ΤΛ1006)

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Προγραμματισμό για ΗΜΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

είκτες και Πίνακες (2)

Εισαγωγή στον Προγραμματισμό

Ενδεικτική περιγραφή μαθήματος

Τύποι Δεδομένων Είσοδος/Έξοδος

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Προγραμματισμός Ι (ΗΥ120)

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Δομημένος Προγραμματισμός (ΤΛ1006)

Βιβλιοθήκη stdio. Προγραμματισμός II 1

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

οµές (structures) και Eνώσεις (unions)

Περιεχόμενα. Πρόλογος... 21

Διαδικαστικός Προγραμματισμός

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Σημειώσεις όγδοης εβδομάδας

i M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y)

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006)

Εισαγωγή στον Προγραμματισμό

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Προγραμματισμός ΙI (Θ)

Αρχές Προγραμματισμού

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ι (ΗΥ120)

Η γλώσσα προγραμματισμού C

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

Η γλώσσα προγραμματισμού C Δομές (structures) στη C

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Προγραµµατισµός Ι (ΗΥ120)

Συµβολοσειρές - Strings

Προγραμματισμός Υπολογιστών με C++

Προγραµµατιστικές Τεχνικές

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Παράδειγµα (2) Πίνακες (Arrays) (2) Πίνακες (Arrays) (1) int num[5];

Προγραμματισμός σε C. Αρχεία κειμένου (Text files)

Εισαγωγή στον Προγραμματισμό

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

Προγραμματισμός I (Θ)

Προγραμματισμός Ι (ΗΥ120)

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διάλεξη 19η: Δομές δεδομένων

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου ( ) gepap@aueb.gr

Transcript:

14 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προετοιµασία για το 4 ο εργαστήριο Γιατί κάνουµε το 4 ο εργαστήριο? ποιες γνώσεις θα αξιοποιήσουµε Συναρτήσεις, Πίνακες, οµές 2 1

Σήµερα Απλές δοµές & Σύνθετες δοµές Πίνακες δοµών & είκτες σε δοµές ιαχείριση Αρχείων ίσκου Άνοιγµα αρχείου Κλείσιµο αρχείου Ανάγνωση & εγγραφή εδοµένων 3 Απλές δοµές οµή είναι µια συλλογή µιας ή περισσοτέρων µεταβλητών οµαδοποιηµένων µε ένα όνοµα µε βασικό στόχο τον εύκολο χειρισµό. Οι µεταβλητές σε µια δοµή, σε αντίθεση µε εκείνες σε ένα πίνακα µπορούν να είναι διαφορετικών τύπων δεδοµένων. Τύποι δεδοµένων µιας δοµής µπορεί να είναι πίνακες & άλλες δοµές. Κάθε µεταβλητή σε µια δοµή ονοµάζεται µέλος της δοµής. 4 2

Ορισµός & δήλωση Απλών δοµών Η Λέξη-Κλειδί struct χρησιµοποιείται για να δηλώσει δοµές. Πρότυπο ή ορισµος δοµής struct tag { stucture_members; } instance; struct tag { stucture_members; struct tag instance; Στιγµιότυπο ή δήλωση δοµής 5 Ορισµός & δήλωση Απλών δοµών Παραδείγµατα: struct coord { int x; int y; } first, second; struct coord { int x; int y; struct coord first, second; 6 3

ιαχείριση των µελών απλής δοµής Τα µέλη δοµής µπορούµε να τα διαχειριστούµε όπως τις µεταβλητές. Ο τρόπος προσπέλασης πραγµατοποιείται µε τον τελεστή τελείας (.) ανάµεσα στο όνοµα της δοµής και το όνοµα του µέλους. Printf( %d,%d, second.x, second.y); first.x=50; second.y=100; first=second; first.x=second.x; first.y=second.y; 7 #include <stdio.h> int length, width; Ορισµός & δήλωση οµής; long area; struct coord{ int x; int y; The coordinates are: (12, 14) } mypoint; int main( void ) { /* set values into the coordinates */ mypoint.x = 12; Ανάθεση τιµών mypoint.y = 14; printf("\nthe coordinates are: (%d, %d).", mypoint.x, mypoint.y); return 0; } 8 4

ήλωση πρότυπου δοµής µε όνοµα SSN struct SSN { int first_three; char dash1; int second_two; char dash2; int last_four; ήλωση στιγµιότυπου τύπου SSN struct SSN customer_ssn; 9 ήλωση δοµής & στιγµιότυπου struct date { char month[2]; char day[2]; char year[4]; } current_date; ήλωση δοµής & στιγµιότυπου µε αρχική τιµή struct time { int hours; int minutes; int second; } time_of_birth={8, 45,0 10 5

Σύνθετες δοµές οµές σε άλλες δοµές οµές που περιέχουν πίνακες Πίνακες δοµών οµές σε άλλες δοµές Από τον ορισµό των απλών δοµών γνωρίζουµε ότι τα µέλη µιας δοµής µπορούν να είναι µεταβλητές οποιουδήποτε τύπου ακόµη και δοµές ή πίνακες. 11 οµές σε άλλες δοµές Παραδείγµατα: struct coord { int x; int y; } topleft, bottomrigth; struct rectangle { struct cord topleft; struct cord bottomrigth; struct rectangle mybox; struct rectangle { struct cord topleft; struct cord bottomrigth; }mybox; 12 6

ιαχείριση µελών σύνθετων οµών Η προσπέλαση στα πραγµατικά δεδοµένα των µελών (µέλη τύπου int) των σύνθετων δοµών πραγµατοποιείται µε την εφαρµογή του τελεστή της τελείας (.) δύο φορές. Έτσι η έκφραση mybox.topleft.x αναφέρεται στο µέλος x του µέλους topleft της δοµής τύπου rectangle µε όνοµα mybox 13 ιαχείριση µελών σύνθετων οµών Για να ορίσουµε ένα ορθογώνιο µε συντεταγµένες (0,10),(100,200) πρέπει να γράψουµε: mybox.topleft.x=0; mybox.topleft.y=10; mybox.bottomright.x=100; mybox.bottomright.y=200; struct coord { int x; int y; } topleft, bottomright; struct rectangle { struct cord topleft; struct cord bottomrigth; }mybox; 14 7

Απεικόνηση σύνθετων οµών int x int y mybox.topleft.x mybox.topleft.y οµή τύπου cord(topleft) οµή τύπου rectangle (mybox) int x int y mybox.bottomright.x mybox.bottomright.y οµή τύπου cord(topleft) 15 Πρόγραµµα Παράδειγµα: #include <stdio.h> int length, width; long area; struct coord{ int x; int y; } topleft, bottomrt; struct rectangle{ struct coord topleft; struct coord bottomrt; } mybox; Ορισµός & δήλωσης απλής δοµής Στιγµιότυπα topleft, bottomrt,mybox Ορισµός & δήλωσης σύνθετης δοµής 16 8

int main( void ) { /* Input the coordinates */ printf("\nenter the top left x coordinate: "); scanf("%d", &mybox.topleft.x); printf("\nenter the top left y coordinate: "); scanf("%d", &mybox.topleft.y); Ανάθεση τιµών από το πληκτρολόγιο printf("\nenter the bottom right x coordinate: "); scanf("%d", &mybox.bottomrt.x); printf("\nenter the bottom right y coordinate: "); scanf("%d", &mybox.bottomrt.y); 17 /* Calculate the length and width */ width = mybox.bottomrt.x - mybox.topleft.x; length = mybox.bottomrt.y - mybox.topleft.y; /* Calculate and display the area */ area = width * length; printf("\nthe area is %ld units.\n", area); return 0; } Μαθηµατικές πράξεις σε δοµές 18 9

οµές που περιέχουν πίνακες Παραδείγµατα: struct data { int x[4]; char y[10]; struct data { int x[4]; char y[10]; } record; struct data record; 19 ιαχείριση δοµών µε πίνακες record.x[2]=100; record.y[5]= f ; Η έκφραση record.y είναι ένας δείκτης η πρόταση puts(record.y) προβάλλει τα περιεχόµενα του πίνακα y[] 20 10

Πρόγραµµα Παράδειγµα: /* Demonstrates a structure that has array members. */ #include <stdio.h> /* Define and declare a structure to hold the data. */ /* It contains one float variable and two char arrays. */ struct data{ float amount; char fname[30]; char lname[30]; } rec; στιγµιότυπο Ορισµός & δήλωσης δοµής πινάκων 21 int main(int argc, char *argv[]) { /* Input the data from the keyboard. */ printf("enter the donor's first and last names,\n"); printf("separated by a space: "); scanf("%s %s", rec.fname, rec.lname); printf("\nenter the donation amount: "); scanf("%f", &rec.amount); Εκχώρηση τιµών µεταβλητών δοµών 22 11

/* Display the information. */ /* Note: %.2f specifies a floating-point value */ /* to be displayed with two digits to the right of the decimal point. */ /* Display the data on the screen. */ printf("\ndonor %s %s gave $%.2f.\n", rec.fname, rec.lname, rec.amount); system("pause"); return 0; } Εκτύπωση τιµών µεταβλητών δοµών 23 Πίνακες οµών struct entry { char fname[10]; char lname[12]; char phone[8]; struct entry list[1000]; Πίνακας 1000 στοιχείων Κάθε στοιχείο του πίνακα µία δοµή τύπου entry 24 12

ιαχείριση Πινάκων οµών list[1]=list[5]; Εκχώρηση των δεδοµένων ενός στοιχείου σε ένα άλλο στοιχείο. strcpy(list[1].phone, list[5].phone); αντιγραφή µιας ακολουθίας χαρακτήρων list[5].phone[1]=list[2].phone[3]; µεταφορά χαρακτήρα 4 ο χαρακτήρα του 3 ου στοιχείου, σε 2 ο χαρακτήρα του 6 ου στοιχείου 25 Πρόγραµµα Παράδειγµα: #include <stdio.h> #include <stdlib.h> /* Demonstrates using arrays of structures. */ /* Define a structure to hold entries. */ struct entry { char fname[20]; char lname[20]; char phone[10]; Ορισµός δοµής πινάκων struct entry list[4]; /* Declare an array of structures. */ int i; ήλωση πινάκα δοµής 26 13

int main(int argc, char *argv[]) { /* Loop to input data for four people. */ for (i = 0; i < 4; i++) { } Εκχώρηση τιµών σε πίνακα δοµής printf("\nenter first name: "); scanf("%s", list[i].fname); printf("enter last name: "); scanf("%s", list[i].lname); printf("enter phone in 123-4567 format: "); scanf("%s", list[i].phone); 27 /* Loop to display data. */ for (i = 0; i < 4; i++) { printf("name: %s %s", list[i].fname, list[i].lname); printf("\t\tphone: %s\n", list[i].phone); } system("pause"); return 0; } Εκτύπωση των τιµών ενός πίνακα δοµής 28 14

Απόδοση αρχικών τιµών σε δοµές Παράδειγµα 1 ο struct sale { char customer[20]; char item[20]; float amount; }mysale={ acme Industries, Left-handed widget, 1000,00 mysale.customer mysale.item mysale.amount 29 Παράδειγµα 2 ο struct customer{ char fir[20]; char contact[25]; struct sale { struct customer buyer char item[20]; float amount; }mysale={{ Acme Industries, George Adams } Left-handed widget, 1000,00 30 15

Παράδειγµα 3 ο struct customer{ char fir[20]; char contact[25]; } buyer; struct sale { struct customer buyer char item[20]; float amount; struct sale list[100] { {{ Acme Industries, George Adams } Left-handed widget, 1000,00 } {{ Wilson & Co., Ed Wilson }, type 12 gizmo 290.00 } Απόδοση αρχικών τιµών σε σύνθετη δοµή 31 είκτες σε δοµές struct data{ int *value; int *rate; } first; first.value = &cost; first.rate = &interest; ιεύθυνση µνήµης *first.value = τιµή της cost; *first.rate = τιµή της interest; 32 16

δείκτης είκτες σε δοµές char *p_message; p_message = Teach yourself C in 21 Days ; διεύθυνση διευθύνσεις struct msg{ char *p1; char *p2; } myptrs; myptrs.p1 = Teach yourself C in 21 Days ; myptrs.p2 = By SAMS Publishing ; 33 ιαχείριση είκτες σε δοµές print ( %s, %s, myptrs.p1, myptrs.p2);? Ποια η διαφορά ανάµεσα (ως µέλη δοµής) σε πίνακα τύπου char & δείκτη τύπου char struct msg{ char p1[30]; char *p2; } myptrs; Προσοχή!!!!! p1 χωρίς αγκύλες = δείκτης άρα p1 & p2 χρησιµοποιούνται µε τον ίδιο τρόπο 34 17

ιαχείριση είκτες σε δοµές Προσοχή!!!!! Πρέπει να έχει αρχική τιµή ο δείκτης strcpy(myptrs.p1, Teach yourself C in 21 Days ); strcpy(myptrs.p2, By SAMS Publishing ); struct msg{ char p1[10]; char p2[10]; } myptrs;. strcpy(myptrs.p1, mineapolis ); strcpy(myptrs.p2, ΜΝ ); Προσοχή!!!!! µεγαλύτερη του πίνακα σπατάλη χώρου 35 ηµιουργία δεικτών προς δοµές struct part{ short number; char name[10]; struct part *p_part δείκτης τύπου δοµής part έχει τιµή ο δείκτης? ΌΧΙ γιατί? δεν έχουν δηλωθεί τα στιγµιότυπα Εάν δηλώσω Τότε struct part gizmo; p_part=&gizmo 36 18

ιαχείριση δεικτών προς δοµές Εκχώρηση τιµής Εάν δηλώσω Τότε struct part gizmo; p_part=&gizmo gizmo.nymber=100; (*p_part).number=100; Αφού *p_part= gizmo 37 Εργασία µε δείκτες & πίνακες δοµών struct part{ short number; char name[10]; struct part data[100]; struct part *p_part; p_part=&data[0]; p_part=&data; πίνακα δοµών part & δείκτη p_part Προβολή περιεχοµένων printf( %d %s,(*p_part).number, (*p_part).name); 38 19

οµές σε ορίσµατα συναρτήσεων /* Demonstrates passing a structure to a function. */ #include <stdio.h> /* Declare and define a structure to hold the data. */ struct data { float amount; char fname[30]; Όρισµα δοµή char lname[30]; } rec; /* The function prototype. The function has no return value, */ /* and it takes a structure of type data as its one argument. */ void print_rec(struct data displayrec); ήλωση συνάρτησης 39 οµές σε ορίσµατα συναρτήσεων int main( void ) { /* Input the data from the keyboard. */ printf("enter the donor's first and last names,\n"); printf("separated by a space: "); scanf("%s %s", rec.fname, rec.lname); printf("\nenter the donation amount: "); scanf("%f", &rec.amount); /* Call the display function. */ print_rec( rec ); return 0; Κλήση συνάρτησης } void print_rec(struct data displayrec) σώµα συνάρτησης { printf("\ndonor %s %s gave $%.2f.\n", displayrec.fname, displayrec.lname, displayrec.amount); } 40 20

ιαχείριση Αρχείων ίσκου ιαχείριση Αρχείων ίσκου Άνοιγµα αρχείου Κλείσιµο αρχείου Ανάγνωση & εγγραφή εδοµένων Άνοιγµα αρχείου ίσκου Συνάρτηση fopen() της τυπικής βιβλιοθήκης stdio.h FILE *fopen(const char *filename, const char *mode); 41 ιαχείριση Αρχείων ίσκου Άνοιγµα αρχείου ίσκου Συνάρτηση fopen() της τυπικής βιβλιοθήκης stdio.h FILE *fopen(const char *filename, const char *mode); Επιστρεφόµενη τιµή δείκτης τύπου FILE οµή δηλωµένη στην stdio.h Άρα όταν πρόκειται να ανοίξουµε ένα αρχείο πρέπει να δηλώνεται ένας δείκτης. Όταν καλείται η fopen() δηµιουργείται ένα στιγµιότυπο δοµής FILE και επιστρέφει ένα δείκτη στην δοµή αυτή 42 21

ιαχείριση Αρχείων ίσκου Ο δείκτης αυτός χρησιµοποιείται σε όλες τις επόµενες λειτουργίες του αρχείου. Εάν η συνάρτηση fopen() αποτύχει επιστρέφει NULL. Ορίσµατα: filename όνοµα αρχείο µαζί µε το path mode καθορίζει τον τρόπο ανοίγµατος του αρχείου mode={r, w, a, r+, w+, a+} 43 ιαχείριση Αρχείων ίσκου r Ανάγνωση & εγγραφή εδοµένων αρχείων δίσκου w a mode={r, w, a, r+, w+, a+} ανάγνωση εγγραφή προσάρτηση r+ ανάγνωση & εγγραφή w+ ανάγνωση & εγγραφή a+ ανάγνωση & προσάρτηση Εάν δεν υπάρχουν δηµιουργούνται Υπερεγγραφή 44 22

ιαχείριση Αρχείων ίσκου Ανάγνωση & εγγραφή εδοµένων αρχείων δίσκου Μορφοποιηµένη έξοδο (αρχεία κειµένου) Έξοδο χαρακτήρα (κυρίως αρχεία κειµένου) Άµεση έξοδο (µνήµης σε αρχείο) 45 ιαχείριση Αρχείων ίσκου Συναρτήσεις διαχείρισης των περιεχοµένων των αρχείων δίσκου Μορφοποιηµένη είσοδο/έξοδο fprintf() fscanf() είσοδο/έξοδο χαρακτήρα gets() fgetc() fgets() fputc() puts() fputs() Είσοδο/έξοδο δυαδικών αρχείων fread() fwrite() 46 23

ιαχείριση Αρχείων ίσκου int fclose(file *fp); Κλείσιµο αρχείων το όρισµα fp είναι ο δείκτης FILE fclose() επιστρέφει 0 σε επιτυχία και -1 σε σφάλµα 47 24