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

Σχετικά έγγραφα
Εισαγωγή στον Προγραμματισμό

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

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχεία

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

ΠΙ Ν Α Κ Ε Σ (arrays)

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

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

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

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

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

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

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

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

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Διαδικασία Ανάπτυξης Λογισμικού

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

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

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

Ηβασικήσυνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main()

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

Εξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

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

scanf() scanf() stdin scanf() printf() int float double %lf float

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

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

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

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

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

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

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

4ο σετ σημειώσεων - Χειρισμός αρχείων και structs

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας

ΕΠΛ232: Εργαστήριο 2

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

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

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

Transcript:

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) Αρχείο είναι μια συλλογή δεδομένων του ίδιου τύπου. Ενα αρχείο αποθηκεύεται στην περιφερειακή μνήμη (σκληρό δίσκο, δισκέττα). Τα αρχεία είναι μόνιμα. Τα δεδομένα τους υπάρχουν και μετά την εκτέλεση του προγράμματος. Αρχεία Δεδομένων Ενα αρχείο δεδομένων είναι μια συλλογή εγγραφών. Μία εγγραφή (record) είναι μία συλλογή από συσχετισμένες τιμές δεδομένων.

Ενααρχείομπορείναείναιένααρχείο κειμένου(text file) ή ένα δυαδικό αρχείο(binary file). Ενα αρχείο κειμένου αποθηκεύει τα δεδομένα σαν αναγνώσιμους ή εκτυπώσιμους χαρακτήρες. Ενα δυαδικό αρχείο αποτελείται από τη δυαδική παράσταση των δεδομένων του και το περιεχόμενό του δεν είναι ούτε αναγνώσιμο αλλά ούτε και εκτυπώσιμο. Ρεύματα(streams) Ενα ρεύμα είναι μια σειρά από bytes συνδεδεμένη με ένα αρχείο. Το βασικό ρεύμα εισόδου θεωρείται σαν ένα αρχείο και το όνομά του είναι stdio.

Το βασικό ρεύμα εξόδου θεωρείται σαν ένα αρχείο και το όνομά του είναι stdout. Το βασικό ρεύμα λάθους είναι το ρεύμα εξόδου, αλλά έχει διαφορετικό όνομα αρχείου, stderr. Δήλωση Αρχείων FILE Παράδειγμα Ανοιγμα Αρχείου *αρχείο_1, *αρχείο_2, *αρχείο_3; FILE *arxeio; Εσωτ_Ον_Αρχείου=fopen(εξωτερικό_όν_αρχείου, τρόπος_ανοίγματος);

Εξωτερικό_Ονομα_Αρχείου : a:foitites.txt Οι πιο συνηθισμένοι τρόποι ανοίγματος r, για διάβασμα δεδομένων από το αρχείο. Το αρχείο πρέπει να υπάρχει, διαφορετικά η fopen θα αποτύχει. w, γράψιμο δεδομένων στο αρχείο ενώ καταστρέφει τα δεδομένα αν το αρχείο ήδη υπάρχει. a, για προσθήκη δεδομένων στο τέλος του ήδη υπάρχοντος αρχείου. r+, για ενημέρωση των δεδομένων του αρχείου (διάβασμα και γράψιμο)

w+, για καταστροφή του αρχείου αν υπάρχει και άνοιγμα ενός νέου αρχείου για ενημέρωση. a+, για ενημέρωση έτσι ώστε το γράψιμο να γίνεται στο τέλος του αρχείου. Παράδειγμα Δίνεται ένα αρχείο με εξωτερικό όνομα a:eisodos.txt. Να προετοιμασθεί το αρχείο αυτό για διάβασμα. #define onoma_arxeiou FILE *dedomena; a:eisodos.txt dedomena = fopen( onoma_arxeiou, r );

Παράδειγμα Δίνονται δύο ονόματα αρχείων από το πληκτρολόγιο. Το ένα ανοίγεται για διάβασμα και το άλλο για γράψιμο. char eis_arxeio[20], ex_arxeio[20]; FILE *eis_dedomena, *ex_dedomena; printf( Εισάγετε το εξωτερικό όνομα αρχείου για διάβασμα ); gets(eis_arxeio); printf( Εισάγετε το εξωτερικό όνομα αρχείου για γράψιμο ); gets(ex_arxeio); eis_dedomena = fopen(eis_arxeio, r ); ex_dedomena = fopen(ex_arxeio, w );

Αν ένα αρχείο δεν υπάρχει, τότε το άνοιγμά του θα αποτύχει. Παράδειγμα #include <stdlib.h>.. If ((eis_dedomena = fopen(eis_arxeio, r )) ==NULL) { printf( Λάθος στο άνοιγμα του αρχείου %s, eis_arxeio); exit(-1); }

Κλείσιμο Αρχείου fclose(εσωτερικό_όνομα_αρχείου); Προαιρετικό αλλά συνιστάται. Αλλαγή του τρόπου επεξεργασίας. Ανώτατο όριο ανοικτών αρχείων.

Οι ακόλουθες εντολές αλλάζουν τον τρόπο επεξεργασίας ενός αρχείου : FILE *foitites_arxeio; foitites_arxeio = fopen( a:foit.dat, w ); /*Εντολές για τη δημιουργία του αρχείου */ fclose(foitites_arxeio); foitites_arxeio = fopen( a: foit.dat, r ); /* Εντολές για διάβασμα του αρχείου*/ fclose(foitites_arxeio); Ησυνάρτηση feof feof(εσωτερικό_όνομα_αρχείου);

Παράδειγμα /* εντολές που διαβάζουν δεδομένα από το αρχείο foititis_arxeio */ while (!feof(foititis_arxeio) ) { /* εντολές επεξεργασίας των δεδομένων */ /* εντολές που διαβάζουν δεδομένα από το αρχείο foititis_arxeio */ } /* τέλος while */

Αρχεία Κειμένου Περιέχουν αναγνώσιμους και εκτυπώσιμους χαρακτήρες. Μια ακολουθία χαρακτήρων που τελειώνει με \n είναι μία εγγραφή. Επεξεργασία κατά γραμμές. Οι εντολές εισόδου-εξόδου για τα αρχεία κειμένου είναι όμοιες με τις εντολές εισόδου-εξόδου στη διαλογική επεξεργασία.

Δημιουργία αρχείου κειμένου fprintf(εσωτ_όν_αρχείου, προσδιοριστής_μορφής, λίστα); fputc(χαρακτήρας, εσωτερικό_όνομα_αρχείου); fputs(συμβολοσειρά, εσωτερικό_όνομα_αρχείου); Παράδειγμα Αν int ar1=5, ar2=15; double ar3=14.25; char xar1= x, xar2= y ; char seira[20]= Programmatismos ;

Τότε Εντολές Εκτύπωσης Γράψιμο Εγγραφής fprintf(exodos, %d\n, ar1); 5 fprintf(exodos, %d %d\n, ar1, ar2); 5 15 fprintf(exodos, %c%c\n, xar1, xar2); xy fputc(xar1, exodos); fputc(xar2, exodos); xy fputc( \n, exodos);

fputs(seira, exodos); fputs( \n, exodos); Programmatismos Πρόβλημα Να γραφεί μία συνάρτηση η οποία να δημιουργεί ένα αρχείο κειμένου, κάθε εγγραφή του οποίου αποτελείται από ένα ακέραιο αριθμό που δίνεται από το πληκτρολόγιο.

void dimiourgia_arxeiou (char on_arxeiou[]) { FILE *exodos; int akeraios; if ((exodos =fopen(on_arxeiou, w ))==NULL) { fprintf(stderr, Λάθος ανοίγματος στο αρχείο %s, on_arxeiou); exit(-1); }

printf( \nεισάγετε ένα ακέραιο ( 0 για τερματισμό): ); scanf( %d, &akeraios); while (akeraios!=0) { fprintf(exodos, %d\n, akeraios); printf( \nεισάγετε ένα ακέραιο ( 0 για τερματισμό): ); scanf( %d, &akeraios); } fclose(exodos); }/* τέλος της dimiourgia_arxeiou */

} Πρόβλημα Να γραφεί μία συνάρτηση, η οποία να δημιουργεί ένα αρχείο κειμένου από χαρακτήρες στο οποίο κάθε εγγραφή να περιέχει ένα οποιοδήποτε πλήθος χαρακτήρων. void dimiourgia_arx_xarakthron(char on_arxeiou[]) { FILE *arx_xar; char xar; if ((arx_xar=fopen(on_arxeiou, w ))==NULL){ fprintf(stderr, Λάθος στο άνοιγμα του αρχείου : %s, exit(-1); on_arxeiou);

printf( \nεισάγετε μία εγγραφή( Δώστε \ για τέλος δεδομένων) : ); scanf( %c, &xar); while (xar!= \\ ) /* Ο χαρακτήρας \ δηλώνεται σαν \\ */ { fputc(xar, arx_xar); if (xar== \n ) printf( \nεισάγετε μία εγγραφή( Δώστε \ για τέλος δεδομένων) : ); scanf( %c, &xar); } fclose(arx_xar); }

Να γραφεί ένα πρόγραμμα που να καλεί τη συνάρτηση dimiourgia_arx_xarakthron. void dimiourgia_arx_xarakthron(char on_arxeiou[]); int main(void) { char onoma_arxeiou[20]; printf( \nεισάγετε ένα εξωτερικό όνομα για το αρχείο: ); gets(onoma_arxeiou); printf( \nδημιουργία αρχείου εκτύπωσης %s, onoma_arxeiou); dimiourgia_arx_xaraktiron(onoma_arxeiou); printf( \nτο αρχείο %s έχει δημιουργηθεί ); return 0; }

Διάβασμα Αρχείου Κειμένου Οι εντολές διαβάσματος αρχείου είναι κλήσεις των ακόλουθων συναρτήσεων: fscanf(εσωτερικό_όνομα_αρχείου, προσ/τής μορφής, λίστα); fgetc(εσωτερικό_όνομα_αρχείου); fgets(συμβολοσειρά, μέγεθος, εσωτερικό_όνομα_αρχείου);

Πρόβλημα Δίνεται ένα αρχείο κειμένου κάθε εγγραφή του οποίου είναι ένας ακέραιος αριθμός. Να γραφεί μία συνάρτηση, η οποία να διαβάζει τους ακέραιους αριθμούς του αρχείου και να υπολογίζει και τυπώνει το πλήθος τους και τη μέση τιμή τους. void mesi_timi(char onoma_arxeiou[]) { FILE *arxeio; int arithmos, athroisma, plithos; float mesos_oros;

athroisma=0; plithos =0; if ((arxeio=fopen(onoma_arxeiou, r ))==NULL){ printf(stderr, Λάθος στο άνοιγμα του αρχείου : %s, onoma_arxeiou); exit(-1); } fscanf(arxeio, &arithmos); while (!feof(arxeio)) { athroisma += arithmos; plithos ++; fscanf(arxeio, arithmos); }

fclose(arxeio); if (plithos ==0) mesos_oros = 0; else mesos_oros = (float)athroisma / plithos; printf( \nπλήθος αριθμών : %d, plithos); printf( \nμέση τιμή : %f, mesos_oros); } Πρόβλημα Να γραφεί ένα πρόγραμμα, το οποίο να χρησιμοποιεί τις συναρτήσεις dimiourgia_arxeiou και mesi_timi.

#include <stdio.h> #include <stdlib.h> void dimiourgia_arxeiou(char on_arxeiou[]); void mesi_timi(char onoma_arxeiou[]); int main(void) { char on_arxeiou[20]; printf( \nεισάγετε το εξωτερικό όνομα του αρχείου : ); gets(on_arxeiou); printf( \nδημιουργία του αρχείου εκτύπωσης : %s, on_arxeiou); dimiourgia_arxeiou(on_arxeiou); printf( \nτο αρχείο %s δημιουργήθηκε, on_arxeiou);

printf( \nεπεξεργασία του αρχείου %s, on_arxeiou); mesi_timi(on_arxeiou); return 0; } Διάβασμα Μορφοποιημένων Αρχείων Αν 14.3515.6517.85 είναι μία εγγραφή. Τότε η fscanf(eisodos, %6lf%4lf%5lf, &x, &y, &z); έχει σαν αποτέλεσμα x=14.351 y=5.65 z=17.85

Αν είναι μία εγγραφή, τότε abcd, 50, 60, 70 1. fscanf(eisodos, %4s%c%d%c%d%c%d, onoma, &xar, &x, &xar, &y, &xar, &z); 2. fscanf(eisodos, %4s, %d, %d, %d, onoma, &x, &y, &z); 3. fscanf(eisodos, %4s%*c%d%*c%d%*c%d, onoma, &x, &y, &z); έχουν το ίδιο αποτέλεσμα onoma=abcd x=50 y=60 z=70

Αντιγραφή Αρχείων Πρόβλημα Να γραφεί ένα πρόγραμμα που να αντιγράφει ένα δεδομένο αρχείο κειμένου σε ένα άλλο. Ανάλυση Διαβάζεται ένας χαρακτήρας από το δεδομένο αρχείο και τυπώνεται στο νέο αρχείο μεχρις ότου συναντηθεί το τέλος του αρχείου.

#include <stdio.h> #include <stdlib.h> void antigrafi_arxeiou(char arxeio_1[], arxeio_2[]); int main(void) { char eis_arxeio[20], ex_arxeio[20]; printf( \nεισάγετε το όνομα του αρχείου που θα αντιγραφεί : ); gets(eis_arxeio); printf( \nεισάγετε το όνομα του νέου αρχείου: ); gets(ex_arxeio); antigrafi_arxeiou(eis_arxeio, ex_arxeio); return 0; }

void antigrafi_arxeiou(char arxeio_1[], arxeio_2[]) { FILE *eisodos, *exodos; char xar; if ((eisodos=fopen(arxeio_1, r ))==NULL) { fprintf(stderr, Λάθος στο άνοιγμα του αρχείου:%s, arxeio_1); exit(-1); } if ((exodos=fopen(arxeio_2, w ))==NULL){ fprintf(stderr, Λάθος στο άνοιγμα του αρχείου:%s, arxeio_2); exit(-1); }

xar=fgetc(eisodos); while (!feof(eisodos)) { fputc(xar, exodos); xar=fgetc(eisodos); } fclose(eisodos); fclose(exodos); }/* τέλος της antigrafi_arxeiou */