Κατασκευάστε το πρόγραμμα more.c που δέχεται ως όρισμα γραμμής εντολής το όνομα ενός
αρχείου κειμένου και προβάλλει τις γραμμές του αρχείου ανά 20, προτρέποντας τον χρήστη να
συνεχίσει, αν επιθυμεί, έως ότου συναντήσει το τέλος του αρχείου.
Συναρτήσεις Εισόδου/Εξόδου στην C
Άνοιγμα και Κλείσιμο Αρχείων
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *fp);
fopen: Ανοίγει το αρχείο με όνομα filename με τρόπο προσπέλασης που καθορίζεται από
το mode. Επιστρέφει ένα ρεύμα μέσω του οποίου μπορούμε στη συνέχεια να αναφερόμαστε
στο αρχείο, ή NULL αν δεν ήταν δυνατόν να ανοίξει το αρχείο.
mode Παραδείγματα:
"r": Διάβασμα από υπάρχον αρχείο."w": Γράψιμο σε αρχείο. Δημιουργείται αν δεν υπάρχει ή διαγράφονται τα
περιεχόμενα αν υπάρχει."a": Προσάρτηση δεδομένων στο τέλος του αρχείου."r+", "w+", "a+": Διάφοροι συνδυασμοί ανάγνωσης και εγγραφής.fclose: Κλείνει το ρεύμα fp. Επιστρέφει 0 σε περίπτωση επιτυχίας.Άλλες Συναρτήσεις
int feof(FILE *fp): Επιστρέφει τιμή διαφορετική από το 0 αν το προηγούμενο
διάβασμα απέτυχε λόγω τέλους αρχείου, αλλιώς επιστρέφει 0.int fprintf(FILE *fp, ...): Αντίστοιχη της printf, αλλά γράφει στο ρεύμα fp αντί
του stdout.int fscanf(FILE *fp, ...): Αντίστοιχη της scanf, αλλά διαβάζει από το ρεύμα fp
αντί του stdin.char *fgets(char *buf, int max, FILE *fp): Διαβάζει το πολύ max-1 χαρακτήρες από
το ρεύμα fp μέχρι την αλλαγή γραμμής και τους φυλάσσει στο buf. Αν δεν υπάρχουν
δεδομένα, επιστρέφει NULL.int getc(FILE *fp): Επιστρέφει τον επόμενο χαρακτήρα από το ρεύμα fp, ή EOF αν
φτάσει στο τέλος του αρχείου.Ελέγξτε το argc και την τιμή που επιστρέφει η fopen πριν διαβάσετε οτιδήποτε.
Διαβάζετε με fgets και μετράτε γραμμές· κάθε 20 γραμμές ρωτάτε τον χρήστη από το
stdin, που είναι διαφορετικό ρεύμα από το αρχείο. Προσέξτε ότι μια γραμμή μεγαλύτερη
από τον buffer σας έρχεται σε περισσότερα από ένα κομμάτια.
Αριθμός στον οδηγό: Α18.10
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: lab-lab10-more ·
Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab10-more.html ·
Markdown (GitHub)