Προς το περιεχόμενο

read txt file c


vojvod

Προτεινόμενες αναρτήσεις

Δημοσ.

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

 

Μήπως μπορεί να με καθοδηγήσει κάποιος;

 

Ευχαριστώ εκ το προτέρων!

Δημοσ.

Aνοίγεις το αρχείο για ανάγνωση με fopen που επιστρέφει ένα δείκτη FILE*. Αυτόν το δείκτη το χρησιμοποιείς ως πρώτο όρισμα στις fscanf ή σε όποια άλλη συνάρτηση θα χρησιμοποιήσεις για να διαβάσεις. Η toupper και η tolower κάνουν τις μετατροπές σε κεφαλαία και μικρά. Η fopen σε βοηθάει επίσης να δημιουργήσεις το αρχείο προορισμού και να γράψεις σ' αυτό, χρησιμοποιώντας την επιστροφή της ως πρώτο όρισμα στην fprintf (ή, πάλι, σε κάποια άλλη συνάρτηση που θα επιλέξεις). Κλείνεις τα αρχεία που άνοιξες με fclose.

Δημοσ.

Επειδή πρέπει να το ψάξεις και λίγο μόνος σου, θα αναφέρω απλά ποιές συναρτήσεις μπορείς να χρησιμοπιοήσεις για να κάνεις την δουλειά σου:

 

fopen() : άνοιγμα ενός υπάρχοντος αρχείου / δημιουργία ενός καινούριου αρχείου

 

fread() : διάβασμα χαρακτήρων από ένα αρχείο (ήδη ανοικτό, για διάβασμα)

 

isalpha() : έλεγχος εάν ένας χαρακτήρας είναι γράμμα της αλφαβήτου

 

islower() : έλεγχος εάν ένα γράμμα της αλφαβήτου δεν έιναι κεφαλαίο

 

toupper(): μετατροπή ενός χαρακτήρα (γράμμα της αλφαβήτου) στο αντοίστοιχο γράμμα της αλφαβήτου στα κεφαλαία.

 

fwrite(): εγγραφή χαρακτήρων σε ένα αρχείο (ήδη ανοικτό, για γράψιμο)

 

fclose(): κλείσιμο ενός αρχείου (ήδη ανοικτό)

 

θα χρεαστείς τα παρακάτω includes: <stdio.h>, <ctype.h>

 

Ξεκίνα το πρόγραμμα και όπου δυσκολευτείς μπορύμε να σε βοηθήσουμε εμέις!

 

EDIT: με πρόλαβε ο αποπάνω!

Δημοσ.

@Evgenios1

Η λύση που έχεις κάνει post την έχεις δοκιμάσει καθόλου; Είναι λάθος, δεν χρησιμοποιείς καθόλου C++ και ίσως σε linux να μην μεταγλωττίζεται καν. Εκτός και αν το _TCHAR το μπερδεύω με ένα macro win32api. Αν και δεν νομίζω να ακούσουμε τίποτα ξανά από τον vojvod...

 

Φιλικά πάντα:-D

Δημοσ.

@Evgenios1

Δεν σου την λέω έτσι απλά για χαβαλέ. Όταν δοκίμασα το πρόγραμμα σου, τερμάτισε με exception. Τώρα αν δεν σε ενδιαφέρει πάω πάσο. Δεν ξέρω που ξέχασες free, δεν βλέπω στον κώδικα να χρησιμοποιείς πουθενά malloc/realloc. Τέλος πιστεύω ότι αν προγραμματίζει κάποιος σε C++ και τον ενδιαφέρει το standard, μπορεί να δημιουργεί λογισμικό λιγότερο προβληματικό, ευκολότερα και γρηγορότερα.

Δημοσ.
ΥΓ1: Θεωρω "Λαθος" κωδικα αυτον που δε γινετε compile

 

Κατά δήλωσή σου λοιπόν, ο κώδικάς σου είναι λάθος αφού δε γίνεται compile:

 

post-4351-129063028302_thumb.png

Δημοσ.
Να μου ελεγες για το free που ξεχασα οκ, αλλα για το entry point....:-(

 

ΥΓ: Δε με ενδιαφερουν τα standard.

ΥΓ1: Θεωρω "Λαθος" κωδικα αυτον που δε γινετε compile, το παραπανω μπορεις να το πεις αργο ή προβληματικο

 

Αν δεν σε ενδιαφέρουν τα standard μήπως μπορείς να μας πεις σε πια γλώσσα προγραμματισμού γραφεις?

Αρχειοθετημένο

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

  • Δημιουργία νέου...