Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α18.10 · Αρχεία κειμένου

Εργαστήριο 10, Άσκηση 1 · Δυσκολία ★★☆ · programming · Κεφάλαια: 18, 12

Κατασκευάστε το πρόγραμμα more.c που δέχεται ως όρισμα γραμμής εντολής το όνομα ενός αρχείου κειμένου και προβάλλει τις γραμμές του αρχείου ανά 20, προτρέποντας τον χρήστη να συνεχίσει, αν επιθυμεί, έως ότου συναντήσει το τέλος του αρχείου.

Συναρτήσεις Εισόδου/Εξόδου στην C

Άνοιγμα και Κλείσιμο Αρχείων

FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *fp);

Άλλες Συναρτήσεις

  1. int feof(FILE *fp): Επιστρέφει τιμή διαφορετική από το 0 αν το προηγούμενο διάβασμα απέτυχε λόγω τέλους αρχείου, αλλιώς επιστρέφει 0.
  2. int fprintf(FILE *fp, ...): Αντίστοιχη της printf, αλλά γράφει στο ρεύμα fp αντί του stdout.
  3. int fscanf(FILE *fp, ...): Αντίστοιχη της scanf, αλλά διαβάζει από το ρεύμα fp αντί του stdin.
  4. char *fgets(char *buf, int max, FILE *fp): Διαβάζει το πολύ max-1 χαρακτήρες από το ρεύμα fp μέχρι την αλλαγή γραμμής και τους φυλάσσει στο buf. Αν δεν υπάρχουν δεδομένα, επιστρέφει NULL.
  5. 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)