Πώς να διαβάσετε ένα αρχείο κειμένου στο C

Pos Na Diabasete Ena Archeio Keimenou Sto C



Αρχεία κειμένου είναι από τους πιο ευρέως χρησιμοποιούμενους τύπους αρχείων σε υπολογιστές. Μπορούν να χρησιμοποιηθούν για μια μεγάλη ποικιλία εργασιών, όπως η αποθήκευση εγγράφων κειμένου ή πηγαίοι κώδικες προγραμμάτων. Αποθηκεύονται στο σύστημα με .κείμενο επέκταση. Ενώ εργάζεστε σε κώδικα C, ίσως χρειαστεί να διαβάσετε ένα αρχείο κειμένου ως μέρος του έργου σας ή να λάβετε βοήθεια από το αρχείο κειμένου. Αντί να επιστρέψετε στην τοποθεσία για να διαβάσετε ένα αρχείο κειμένου, είναι καλύτερα να το διαβάσετε μέσα σε έναν κώδικα.

Αυτό το άρθρο εξετάζει χρήσιμους τρόπους ανάγνωσης ενός αρχείου κειμένου στη γλώσσα προγραμματισμού C.

Διαβάστε ένα αρχείο κειμένου σε C

Υπάρχουν τέσσερις μέθοδοι για να διαβάσετε ένα αρχείο κειμένου σε C, οι οποίες είναι.







Μέθοδος 1: Χρήση της συνάρτησης fscanf() για την ανάγνωση ενός αρχείου κειμένου στο C

ο fscanf() Η συνάρτηση είναι μια τυπική συνάρτηση βιβλιοθήκης που λαμβάνει μια σειρά από ορίσματα και τα μετατρέπει σε τιμές που μπορούν να χρησιμοποιηθούν από το πρόγραμμά σας. Βρίσκει μια συμβολοσειρά μορφής μέσα στο αρχείο και επιστρέφει μια συμβολοσειρά μορφοποίησης κατά την ανάγνωση από το αρχείο. Η συμβολοσειρά μορφής πρέπει να περικλείεται μέσα σε εισαγωγικά (“ ”), ώστε να μην ερμηνεύονται από το πρόγραμμά σας ως μέρος της δικής του σύνταξης.



ο fscanf() Η συνάρτηση διαβάζει δεδομένα στις θέσεις που παρέχονται από τα στοιχεία της λίστας ορισμάτων. Οι καταχωρήσεις της λίστας ορισμάτων πρέπει όλες να δείχνουν σε μεταβλητές των οποίων οι τύποι ταιριάζουν με τους προσδιοριστές τύπου στη συμβολοσειρά μορφής.



Δίνει είτε ΕΟΦ (τέλος αρχείου) είτε τον αριθμό των μεταβλητών με τιμές που τους έχουν εκχωρηθεί.





Ας δούμε ένα παράδειγμα για να διαβάσετε ένα αρχείο κειμένου χρησιμοποιώντας το fscanf() λειτουργία:

#include
int main ( )
{
ΑΡΧΕΙΟ * ptr = φωφ ( 'file_name.txt' , 'r' ) ;
αν ( ptr == NULL ) {
printf ( 'δεν υπάρχει τέτοιο αρχείο.' ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}
char buf [ 100 ] ;
ενώ ( fscanf ( ptr, '%s' , buf ) == 1 )
printf ( '%μικρό \n ' , buf ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Σε αυτόν τον κώδικα, fopen() Η συνάρτηση χρησιμοποιείται για το άνοιγμα του αρχείου κάτω από τη μεταβλητή δείκτη ptr. fscanf() Στη συνέχεια, η λειτουργία χρησιμοποιείται για την ανάγνωση του αρχείου και μετά την εκτύπωση του περιεχομένου του.



Παραγωγή

Μέθοδος 2: Χρήση της συνάρτησης fread() για την ανάγνωση ενός αρχείου κειμένου στο C

Τα δεδομένα από το αρχείο διαβάζονται από το Fread() μέθοδο και αποθηκεύεται σε buffer. Τα στοιχεία μέχρι την καταμέτρηση διαβάζονται σε ένα buffer πίνακα από το fread() συνάρτηση από τη ροή εισόδου, η οποία παρέχεται ως όρισμα συνάρτησης.

Όταν ο συνολικός αριθμός στοιχείων διαβαστεί με επιτυχία, επιστρέφεται ένα αντικείμενο size_t. Εάν αυτή η τιμή είναι διαφορετική από την τιμή που καθορίζεται από το πρόγραμμα, είτε παρουσιάστηκε σφάλμα είτε έφτασε στο τέλος του αρχείου.

#include
int main ( )
{
char buffer [ 33 ] ;
ΑΡΧΕΙΟ * ρεύμα;
ρέμα = πέσιμο ( 'file_name.txt' , 'r' ) ;
int count = fread ( & buffer, μέγεθοςof ( απανθρακώνω ) , 33 , ρεύμα ) ;
fclose ( ρεύμα ) ;
printf ( 'Δεδομένα που διαβάζονται από το αρχείο: %s \n ' , buffer ) ;
printf ( 'Αριθμός αναγνωσμένων στοιχείων: %d' , μετρώ ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Σε αυτόν τον κώδικα, το fopen() Η συνάρτηση χρησιμοποιείται για το άνοιγμα του αρχείου και στη συνέχεια το fread() Στη συνέχεια, η λειτουργία χρησιμοποιείται για την ανάγνωση του αρχείου και μετά την εκτύπωση του περιεχομένου του. 33 δείχνει τον αριθμό των χαρακτήρων που θα διαβάσει από το αρχείο.

Παραγωγή

Μέθοδος 3: Χρήση της συνάρτησης fgets() για την ανάγνωση ενός αρχείου κειμένου στο C

Με την fgets() συνάρτηση, διαβάζεται μια γραμμή από την καθορισμένη ροή και αποθηκεύεται στην αντίστοιχη μεταβλητή συμβολοσειράς. Όταν διαβαστούν χαρακτήρες (n-1), ο χαρακτήρας νέας γραμμής ή το τέλος του αρχείου ή όποιο συμβεί πρώτο, το πρόγραμμα τελειώνει. Εάν η συνάρτηση είναι επιτυχής, επιστρέφεται η ίδια συμβολοσειρά. Τα περιεχόμενα της συμβολοσειράς διατηρούνται στη θέση τους και εμφανίζεται ένας μηδενικός δείκτης εάν η συνάρτηση φτάσει στο τέλος του αρχείου χωρίς να διαβάζονται χαρακτήρες.

Σε περίπτωση αποτυχίας, παρέχει έναν μηδενικό δείκτη.

#include
int main ( ) {
ΑΡΧΕΙΟ * fp;
char str [ 60 ] ;
fp = fopen ( 'file.txt' , 'r' ) ;
αν ( fp == NULL ) {
λάθη ( 'Σφάλμα στο άνοιγμα του αρχείου' ) ;
ΕΠΙΣΤΡΟΦΗ ( - 1 ) ;
}
αν ( fgets ( οδός, 100 , fp ) ! =ΜΗΔΕΝΟΣ ) {
βάζει ( str ) ;
}
fclose ( fp ) ;
ΕΠΙΣΤΡΟΦΗ ( 0 ) ;
}

Σε αυτόν τον κώδικα, file.txt το αρχείο ανοίγει από fopen() λειτουργία και μετά fgets() Στη συνέχεια, η συνάρτηση χρησιμοποιείται για να διαβάσει τις συμβολοσειρές στο αρχείο και στη συνέχεια να τις εκτυπώσει. Το 100 δείχνει τον αριθμό των συμβολοσειρών που θα διαβάσει.

Παραγωγή

Μέθοδος 4: Χρήση της συνάρτησης fgetc() για την ανάγνωση ενός αρχείου κειμένου στο C

ο fgtec() Η λειτουργία χρησιμοποιείται για την ανάγνωση των χαρακτήρων έναν προς έναν. Στη συνέχεια, η συνάρτηση επιστρέφει τον κωδικό ASCII του χαρακτήρα που έχει διαβάσει. Επιστρέφει τον χαρακτήρα που υπήρχε στη δηλωμένη θέση του δείκτη του αρχείου. Στη συνέχεια, ο δείκτης αρχείου μεταβαίνει στον επόμενο χαρακτήρα. Εάν υπάρχει σφάλμα ή ο δείκτης φτάσει στο τέλος του αρχείου, αυτή η συνάρτηση επιστρέφει ένα EOF (End-Of-File).

#include
int main ( )
{
ΑΡΧΕΙΟ * fp = fopen ( 'file.txt' , 'r' ) ;
αν ( fp == NULL )
ΕΠΙΣΤΡΟΦΗ 0 ;
κάνω {
char c = fgetc ( fp ) ;
αν ( feof ( fp ) )
Διακοπή ;
printf ( '%ντο' , γ ) ;
} ενώ ( 1 ) ;
fclose ( fp ) ;
ΕΠΙΣΤΡΟΦΗ ( 0 ) ;
}

Ο ' file.txt ” το αρχείο ανοίγει από το fopen() λειτουργία σε αυτόν τον κώδικα κάτω από τη μεταβλητή δείκτη fp. Στη συνέχεια, οι χαρακτήρες του αρχείου διαβάζονται χρησιμοποιώντας το fgetc() μέθοδο, η οποία εκτυπώνει τους χαρακτήρες που διαβάστηκαν.

Παραγωγή

συμπέρασμα

Η ανάγνωση αρχείων είναι μια αναγκαιότητα για κάθε χρήστη υπολογιστή, και ειδικά για έναν προγραμματιστή, είναι σημαντικό να μπορεί να έχει πρόσβαση στα αρχεία χρησιμοποιώντας τον κώδικά του. Επομένως 4 μέθοδοι αναφέρονται παραπάνω στο άρθρο για ανάγνωση α αρχείο κειμένου χρησιμοποιώντας τη γλώσσα C. fscanf() και fread() χρησιμοποιούνται για την ανάγνωση των αρχείων με παρόμοιο τρόπο, με την εξαίρεση ότι fread() μας επιτρέπει να καθορίσουμε τον αριθμό των χαρακτήρων που θέλει να διαβάσει ο χρήστης, ενώ fgets() χρησιμοποιείται για την ανάγνωση ενός αρχείου γραμμή προς γραμμή και fgetc() χρησιμοποιείται για την ανάγνωση ενός αρχείου χαρακτήρα προς χαρακτήρα.