ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C

Σχετικά έγγραφα
Μεθόδων Επίλυσης Προβλημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Προγραµµατισµός. Αρχεία

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

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

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

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

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

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

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

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Χpήσιµες Βιβλιοθήκες της γλώσσας C

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

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

Συναρτήσεις πρότυπης βιβλιοθήκης 1. Μερικές συνήθεις συναρτήσεις βιβλιοθήκης int atoi(const char *p) int fclose(file *fp)

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

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

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

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

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

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

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

Η γλώσσα προγραμματισμού C Χειρισμός αρχείων

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

Εργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

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

10.2 Καταχώρηση δεδομένων σε σειριακά αρχεία

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

Αρχεία κειμένου και η VB.NET

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Transcript:

ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C C Χατζηκυριάκου Γιώργος ΑΜ:1047 1

ΔΟΥΛΕΥΟΝΤΑΣ ΜΕ ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C Mερός Α Πρόλογος Το κείμενο αυτό θα ασχοληθεί με την εγγραφή,ανάγνωση καθώς και με την εκτύπωση αρχείων κειμένου στην γλώσσα C. Τα στοιχεία αυτά θα προσπαθήσω να τα καλύψω με διάφορα παραδείγματα. Το μέρος Α θα ασχοληθεί με την εγγραφή σε αρχεία κειμένου. Παράδειγμα 1 : #include <stdio.h> void main() FILE *fp; fp = fopen("write.txt","w"); fprintf(fp,"hello World"); fclose(fp); Έξοδος : Γράφοντας σε ένα αρχείο Σαν έξοδο το παραπάνω πρόγραμμα θα έχει την δημιουργία ενός αρχείου κειμένου (write.txt) που θα περιέχει το κείμενο Hello World. Βασικές Εντολές : FILE *fp; Δηλώνουμε το αρχείο μέσω ενός δείκτη σε έναν απομονωτή αρχείου. Αυτό σημαίνει ότι πρέπει να συνδέσουμε τον απομονωτή με κάποιο φυσικό όνομα αρχείου όπως αυτό είναι δηλωμένο στο λειτουργικό σύστημα. Η σύνδεση 2

αυτή γίνεται με τη βοήθεια της συνάρτησης fopen. Η συνάρτηση fopen δέχεται δύο παραμέτρους σε μορφή συμβολοσειρών. fp = fopen("write.txt","w"); Η πρώτη παράμετρος είναι το φυσικό όνομα του αρχείου στη μορφή που καθορίζει το λειτουργικό σύστημα "write.txt". Η δεύτερη παράμετρος είναι ένας από τους χαρακτήρες "r", "w", "a", ή τους συνδυασμούς "r+", "w+", "a+". r = read = διάβασμα w = write = γράψιμο a = append = επέκταση Η πρόσθεση του + μετά από έναν χαρακτήρα σημαίνει ότι επιτρέπεται και η αντίθετη χρήση ταυτόχρονα δηλαδή διάβασμα + γράψιμο, γράψιμο + διάβασμα, επέκταση + διάβασμα. Στο παράδειγμά μας το αρχείο ανοίγεται για γράψιμο. fprintf(fp,"hello World"); Το γράψιμο στο αρχείο είναι αναλόγως εύκολη υπόθεση,αντί για την εντολή printf χρησιμοποιούμε την εντολή fprintf που μας δίνει την έξοδο αντί στην οθόνη στο αρχείο που δηλώσαμε. fclose(fp); Το κλείσιμο ενός αρχείου γίνεται με τη κλήση της συνάρτησης fclose με μοναδική παράμετρο τον δείκτη του απομονωτή αρχείου. Στη πράξη, σε απλά προγράμματα όπως το παράδειγμά μας το κλείσιμο ενός αρχείου μάλλον περιττεύει αφού το σύστημα εκτέλεσης κλείνει όλα τα ανοικτά αρχεία με τον τερματισμό του κυρίου προγράμματος. Σε μεγαλύτερα προγράμματα είναι δυνατό να κλείσουμε ένα αρχείο για να το ξανανοίξουμε αργότερα για διαφορετική χρήση, ή απλά για να μην έχουμε πάρα πολλά ανοικτά αρχεία. Παράδειγμα 2 : #include <stdio.h> void main() 3

char name[50]; FILE *stream; stream = fopen("write2.txt","a"); printf("name : "); scanf("%s",&name); fflush(stdin); fprintf(stream, "Name : %s\n",name); fclose(stream); Έξοδος : Πρώτα το πρόγραμμα θα σας ζητήσει τα παρακάτω : Name : Σαν έξοδο το παραπάνω πρόγραμμα θα έχει την δημιουργία ενός αρχείου κειμένου (write2.txt) που θα περιέχει τα παρακάτω : Π.χ Name : Γιώργος Οι επόμενες εγγραφές θα τοποθετούνται στο τέλος του αρχείου κάθε φορά που καλούμε το πρόγραμμα για τον λόγο ότι κάναμε χρήση της εντολής : stream = fopen("write2.txt","a"); "a" = append για επέκταση του αρχείου μας. Ένα πιο προχωρημένο παράδειγμα εγγραφής σε αρχείο : Για το παρακάτω παράδειγμα χρησιμοποίησα τον compiler Borland C++ 4.5. #include <stdio.h> #include <conio.h> #include <stdlib.h> 4

#include <time.h> #include <string.h> void main() char name[20],sur[20],tel[20],sel; do clrscr(); time_t t; time(&t); FILE *stream; stream = fopen("phonesc.txt","a"); printf("+----------------------+\n"); printf("i Phone Book V.1 I\n"); printf("+----------------------+\n\n\n"); printf("name : "); scanf("%s",&name); fflush(stdin); printf("surname : "); scanf("%s",&sur); fflush(stdin); printf("telephone : "); scanf("%s",&tel); fflush(stdin); fprintf(stream, "Name : %s\n",name); fprintf(stream, "Surname : %s\n",sur); fprintf(stream, "Telephone : %s\n",tel); fprintf(stream, "Date/Time : %s\n",ctime(&t)); fprintf(stream, "-----------------------------------------------\n"); fclose(stream); printf("\n\n\ncontinue?(y/n) :"); scanf("%s",&sel); 5

while(sel=='y' sel=='y'); exit (0); Έξοδος : Πρώτα το πρόγραμμα θα σας ζητήσει τα παρακάτω : Name : Surname : Telephone : Σαν έξοδο το παραπάνω πρόγραμμα θα έχει την δημιουργία ενός αρχείου κειμένου (phonesc.txt) που θα περιέχει τα παρακάτω : Π.χ Name : Γιώργος Surname : Χ. Telephone : 123456789 Date/Time : Mon Jan 01 02:09:52 2004 ----------------------------------------------- Οι επόμενες εγγραφές θα τοποθετούνται στο τέλος του αρχείου κάθε φορά που απαντούμε με y στην ερώτηση Continue? Το πρόγραμμα τερματίζετε με την απάντηση n. Τέλος Μέρους Α Στο επόμενο Μέρος θα ασχοληθούμε με την ανάγνωση ενός αρχείου κειμένου. 6

ΔΟΥΛΕΥΟΝΤΑΣ ΜΕ ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C Mερός Β Παράδειγμα 1 : Ανάγνωση αρχείου ανά χαρακτήρα #include <stdio.h> void main() FILE *funny; char c; funny = fopen("write.txt","r"); if (funny == NULL) printf("file doesn't exist\n"); else do c = getc(funny); putchar(c); while (c!= EOF); fclose(funny); Έξοδος : Σαν έξοδο το παραπάνω πρόγραμμα θα έχει τις πληροφορίες του αρχείου κειμένου (write.txt) δηλαδή Hello World (Μέρος Α παράδειγμα 1). Βασικές Εντολές : 7

if (funny == NULL) printf("file doesn't exist\n"); Εδώ γίνετε έλεγχος, σε περίπτωση που δεν υπάρχει το αρχείο write.txt να μας βγάζει ένα μήνυμα λάθους (File doesn t exist). do c = getc(funny); putchar(c); while (c!= EOF); Με τη βοήθεια βρόγχου (Loop) διαβάζουμε ένα χαρακτήρα από το αρχείο (c = getc(funny);) και τον τυπώνουμε στην οθόνη (putchar(c);) μέχρι το τέλος του αρχείου (while (c!= EOF)); (End Of File). 8