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

prompt_for: Απλή βιβλιοθήκη για εύκολο διάβασμα της κύριας εισόδου σε C


migf1

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

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

 

Η μικρή αυτή βιβλιοθήκη αφενός αντιμετωπίζει δυσάρεστα φαινόμενα που ενδέχεται να προκύψουν από το Line Buffering της κύριας εισόδου και αφετέρου "κρύβει" σχεδόν πλήρως τη χρήση δεικτών για την ανάγνωση μεταβλητών που έχουν οριστεί σε οποιονδήποτε από τους βασικούς τύπους δεδομένων (char, int, float, double), συμπεριλαμβανομένων των προσδιοριστών μεγέθους (short, long, long long) και πρόσημου (signed, unsigned).

 

Υποστηρίζει προαιρετική χρήση κειμένου προτροπής εισόδου ως 1ο όρισμα σε όλες της τις συναρτήσεις (prompt), ενώ περιλαμβάνει ξεχωριστή συνάρτηση για την ανάγνωση συμβολοσειρών μηδενισμένου τέλους (c-strings), καθώς και δυο συναρτήσεις ταυτόχρονης ανάγνωσης πολλών μεταβλητών, διαφορετικών τύπων, από την ίδια γραμμή εισόδου.

 

Τέλος παρέχει αυτόνομα μια μικρή συλλογή από macros του προ-επεξεργαστή (pre-processor) για εύκολη αλλαγή/επαναφορά της κωδικοσελίδας εξόδου, στην κονσόλα των Windows (XP ή μεταγενέστερα).

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

 

Ιστοσελίδα: http://x-karagiannis.../prompt_for.php (download στο τέλος της σελίδας).

Τεκμηρίωση: http://x-karagiannis...t_for/doc/html/ (θέλει καφέ & τσιγάρα :lol:)

 

Ελπίζω να μη μου έχει ξεφύγει κάνα σημαντικό bug ή καμιά αρλούμπα στην τεκμηρίωση (η οποία με ταλαιπώρησε αφάνταστα). Σημειώστε πως η βιβλιοθήκη ΔΕΝ υποστηρίζει εγγενώς Unicode κωδικοποιήσεις, αλλά είναι cross-platform.

 

Αν είστε σε Windows και προγραμματίζετε σε κονσόλα, τότε για Ελληνικά προτιμήστε να αποθηκεύετε τα πηγαία αρχεία σας σε κωδικοποίηση Windows-1253 και χρησιμοποιήστε το: w32con_cpout.h που έχω συμπεριλάβει στην βιβλιοθήκη (αλλά ουσιαστικά είναι αυτόνομο) για να την ορίζετε προγραμματιστικά στην αρχή των προγραμμάτων σας, και να επαναφέρετε την αρχική κωδικοσελίδα πριν τερματίσει το πρόγραμμά σας. Με την προϋπόθεση πως έχετε αλλάξει την γραμματοσειρά των Windows από raster που είναι η default σε true-type (Lucida Console σε XP/7 ή Consolas σε 7άρια). Τα εξηγώ και στην τεκμηρίωση, δίνω και δείγμα κώδικα.

 

Αν είστε σε Linux, προτιμήστε UTF-8 κωδικοποίηση στα πηγαία αρχεία σας.

 

Τα πηγαία αρχεία της βιβλιοθήκης είναι όλα αποθηκευμένα σε UTF-8, αλλά η βιβλιοθήκη ΔΕΝ υποστηρίζει εγγενώς multi-byte κωδικοποιήσεις!

 

Ελπίζω με την prompt_for να... κοπάσει η καταιγίδα προβλημάτων κι ερωτήσεων σχετικά με την ανάγνωση της κύριας εισόδους στη C :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...