vojvod Δημοσ. 5 Οκτωβρίου 2009 Δημοσ. 5 Οκτωβρίου 2009 Είμαι καινούριος στην γλώσσα προγραμματισμού c και θέλω να γράψω ένα προγραμματάκι που να διαβάζει ένα txt αρχείο γραμμή γραμμή, να αλλάζει τα μικρά γράμματα σε κεφαλαία και να σώζει το αποτέλεσμα στο αρχείο. Μήπως μπορεί να με καθοδηγήσει κάποιος; Ευχαριστώ εκ το προτέρων!
teo64x Δημοσ. 5 Οκτωβρίου 2009 Δημοσ. 5 Οκτωβρίου 2009 Aνοίγεις το αρχείο για ανάγνωση με fopen που επιστρέφει ένα δείκτη FILE*. Αυτόν το δείκτη το χρησιμοποιείς ως πρώτο όρισμα στις fscanf ή σε όποια άλλη συνάρτηση θα χρησιμοποιήσεις για να διαβάσεις. Η toupper και η tolower κάνουν τις μετατροπές σε κεφαλαία και μικρά. Η fopen σε βοηθάει επίσης να δημιουργήσεις το αρχείο προορισμού και να γράψεις σ' αυτό, χρησιμοποιώντας την επιστροφή της ως πρώτο όρισμα στην fprintf (ή, πάλι, σε κάποια άλλη συνάρτηση που θα επιλέξεις). Κλείνεις τα αρχεία που άνοιξες με fclose.
pinball_elf Δημοσ. 5 Οκτωβρίου 2009 Δημοσ. 5 Οκτωβρίου 2009 Επειδή πρέπει να το ψάξεις και λίγο μόνος σου, θα αναφέρω απλά ποιές συναρτήσεις μπορείς να χρησιμοπιοήσεις για να κάνεις την δουλειά σου: fopen() : άνοιγμα ενός υπάρχοντος αρχείου / δημιουργία ενός καινούριου αρχείου fread() : διάβασμα χαρακτήρων από ένα αρχείο (ήδη ανοικτό, για διάβασμα) isalpha() : έλεγχος εάν ένας χαρακτήρας είναι γράμμα της αλφαβήτου islower() : έλεγχος εάν ένα γράμμα της αλφαβήτου δεν έιναι κεφαλαίο toupper(): μετατροπή ενός χαρακτήρα (γράμμα της αλφαβήτου) στο αντοίστοιχο γράμμα της αλφαβήτου στα κεφαλαία. fwrite(): εγγραφή χαρακτήρων σε ένα αρχείο (ήδη ανοικτό, για γράψιμο) fclose(): κλείσιμο ενός αρχείου (ήδη ανοικτό) θα χρεαστείς τα παρακάτω includes: <stdio.h>, <ctype.h> Ξεκίνα το πρόγραμμα και όπου δυσκολευτείς μπορύμε να σε βοηθήσουμε εμέις! EDIT: με πρόλαβε ο αποπάνω!
3c0r1z Δημοσ. 6 Οκτωβρίου 2009 Δημοσ. 6 Οκτωβρίου 2009 @Evgenios1 Η λύση που έχεις κάνει post την έχεις δοκιμάσει καθόλου; Είναι λάθος, δεν χρησιμοποιείς καθόλου C++ και ίσως σε linux να μην μεταγλωττίζεται καν. Εκτός και αν το _TCHAR το μπερδεύω με ένα macro win32api. Αν και δεν νομίζω να ακούσουμε τίποτα ξανά από τον vojvod... Φιλικά πάντα
TheMagician Δημοσ. 7 Οκτωβρίου 2009 Δημοσ. 7 Οκτωβρίου 2009 φιλε συγγνωμη. Ποσταρεις κωδικα για visual c++ σε κατι τοσο απλο οκ, μονο να τον μπερδεψεις μπορεις ετσι
3c0r1z Δημοσ. 7 Οκτωβρίου 2009 Δημοσ. 7 Οκτωβρίου 2009 @Evgenios1 Δεν σου την λέω έτσι απλά για χαβαλέ. Όταν δοκίμασα το πρόγραμμα σου, τερμάτισε με exception. Τώρα αν δεν σε ενδιαφέρει πάω πάσο. Δεν ξέρω που ξέχασες free, δεν βλέπω στον κώδικα να χρησιμοποιείς πουθενά malloc/realloc. Τέλος πιστεύω ότι αν προγραμματίζει κάποιος σε C++ και τον ενδιαφέρει το standard, μπορεί να δημιουργεί λογισμικό λιγότερο προβληματικό, ευκολότερα και γρηγορότερα.
parsifal Δημοσ. 7 Οκτωβρίου 2009 Δημοσ. 7 Οκτωβρίου 2009 ΥΓ1: Θεωρω "Λαθος" κωδικα αυτον που δε γινετε compile Κατά δήλωσή σου λοιπόν, ο κώδικάς σου είναι λάθος αφού δε γίνεται compile:
C6WGMN Δημοσ. 7 Οκτωβρίου 2009 Δημοσ. 7 Οκτωβρίου 2009 Να μου ελεγες για το free που ξεχασα οκ, αλλα για το entry point.... ΥΓ: Δε με ενδιαφερουν τα standard. ΥΓ1: Θεωρω "Λαθος" κωδικα αυτον που δε γινετε compile, το παραπανω μπορεις να το πεις αργο ή προβληματικο Αν δεν σε ενδιαφέρουν τα standard μήπως μπορείς να μας πεις σε πια γλώσσα προγραμματισμού γραφεις?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.