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

Πρόγραμμα σε C


geodark

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

ΑΝΤΕ ΠΑΛΙ.

Δεν σχολίασα τον κώδικα σου όσον αφορά την ποιότητα ή την ορθότητα αλλά την χρήση της scanf/sscanf σαν πρακτική input!!!!!!!!!!!!!

O κωδικάς σου ήταν μια χαρά για την χρήση της. Εμένα δεν μου αρέσει να χρησιμοποιείται η scanf για λόγους που είπα,

Ελπίζω να κατάλαβες επιτέλους.

 

Όλο και όλο αυτό που ήθελα να κάνω ήταν να δείξω στο παιδί να κάνει κάτι διαφορετικό από την scanf χωρίς να επεκταθώ πολύ, και να σου πω ότι η scanf πέρα από το portability και την ευκολία της είναι άθλια σαν user input. Πρωτόγονη.

Τώρα εσύ με το μυαλό σου θεώρησες ότι δεν ξέρω να κάνω for, ότι δεν μπορώ να γράψω ένα validator, ότι δεν μπορώ να την κάνω πιο generic και ότι υποτιμώ τον κωδικά σου, σαν κώδικα και όχι επειδή δεν μου αρέσει η scanf. Μου έφτιαξες και ένα πρόγραμμα με το δικό μου τρόπο για να μου δείξεις τι; Ότι εσύ μπορείς και εγώ όχι; Και μην μου πεις όχι για αυτό το λόγο γιατί μετά με προκάλεσες να κάνω και εγώ κάτι αντίστοιχο. Πολύ μέτρημα πέφτει.

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

  • Απαντ. 66
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Επί του θέματος,

 

καταρχήν υπάρχει λόγος που η scanf() είναι διαφορετική συνάρτηση από την sscanf(). Η δε σωστή χρήση του συνδυασμού fgets() με sscanf() και stdin flushing είναι από τις πλέον robust υλοποίησεις διαβάσματος της κυρίας εισόδου σε περιβάλλον γραμμής εντολών. Στέκεται ΑΝΕΤΟΤΑΤΑ σε οποιοδήποτε project (και όπως έγραψα και μερικές σελίδες πριν υπάρχουν κι άλλοι τρόποι)!

 

Θα μπορούσες να μοιραστείς μαζί μας τον κώδικα με τον οποίον διαβάζεις εσύ γενικώς input και το κάνεις validate από τη γραμμή εντολών σε C?

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

Α, επι του θέματος τώρα.

 

Πάλι πλάκα μου κάνεις ρε συ.

Δεν έχω κανένα κώδικα γιατί δεν γράφω c και c++ εδώ και 8 χρόνια όπως σου είπα. Και ούτε έχω την διάθεση  να χρησιμοποιήσω c πάλι. Μόνο c++ στο κοντινό μέλλον γιατί το windows phone 8 θέλει c++ και directx για games.

 

Αυτό το στέκονται ανετότα σε οποιοδήποτε project εννόεις σε project που δεν έχεις ένα στοιχειώδης user interface  (μιλάμε σε text mode) και απλά ζητάς από το command line εντολές.

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

Πάλι πλάκα μου κάνεις ρε συ.

Δεν έχω κανένα κώδικα γιατί δεν γράφω c και c++ εδώ και 8 χρόνια.

Οπότε προφανώς εσύ είσαι εκείνος που μας κάνει πλάκα εδώ και κάμποσες σελίδες.

 

Αυτό το στέκονται ανετότα σε οποιοδήποτε project εννόεις σε project που δεν έχεις ένα στοιχειώδης user interface  (μιλάμε σε text mode) και απλά ζητάς από το command line εντολές.

Προφανώς! Εσύ δηλαδή στο παρόν νήμα κατάλαβες πως ο TS ρώτησε πως να κάνει input validation σε GUI ή σε ncurses? Αλλά ακόμα και σε GUI, από τη στιγμή που στη συντριπτική τους πλειοψηφία κάνουν store τα input ως strings, και πάλι η sscanf() αποδεικνύεται (και είναι) χρήσιμη.

 

Και κάπου εδώ, αποχωρώ for good από το νήμα.

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

Παίρνεις ποσοστά από νευρολόγους ρε συ για να μας οδηγείς εκεί;

ΑΦΟΥ ΑΠΟ ΤΗΝ ΑΡΧΗ έγραψα ότι δεν έχω ασχοληθεί με c/c++ εδω κα 8 χρόνια και ότι δεν έχω ΚΑΝ c/c++ compiler εγκατεστημένο.

Οπότε μου κάνεις πλάκα που περίμενες τόσες σελίδες για να μου το πεις αυτό.

Άρα δεν σου φταίω εγώ αν εσύ δεν διαβάζεις καλά τι γράφει ο άλλος.

Τι σχέση έχει όμως πόσα χρόνια έχω να γράψω c; Αυτό που έγραψα δεν αφορά την τεχνογωσία της c. Ένα απλό αλγόριθμο έγραψα για να κάνει valid time input (με προειδοποίηση ότι δεν έχω καν compiler) για να το χρησιμοποιήσει και σαν ιδέα για να φτιάξει κάτι καλύτερο αν θέλει, και οι παρατηρήσεις μού ήταν γύρω από το user experience της scanf. Τι σχέση έχουν αυτά (user experience) με την τεχνογωσία της c;

 

Όσον  αφορά τι ήθελε αυτό που άνοιξε το νήμα, εγώ είδα μόνο να ζητάει ένα τρόπο να παίρνει valid ώρα. Από εκεί και πέρα αν το ήθελε για command line, για ui ή δεν ξέρω τι, μου είναι αδιάφορο. Ήθελα απλώς να του γράψω κάτι καλύτερο από την scanf για το συγκεκριμένο time input και μόνο αυτό, και όχι κάτι generic. Αν του άρεσε σίγουρα θα το έψαχνε για να μάθει πως να το κάνει καλύτερα γενικότερα.

Για την χρήση στο gui, δεν μπορείς να χρησιμοποιήσεις την fgets, Έκει θα πρέπει να φτιάξεις input δικό σου.

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

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

 

...

Όσον  αφορά τι ήθελε αυτό που άνοιξε το νήμα, εγώ είδα μόνο να ζητάει ένα τρόπο να παίρνει valid ώρα. Από εκεί και πέρα αν το ήθελε για command line, για ui ή δεν ξέρω τι, μου είναι αδιάφορο. Ήθελα απλώς να του γράψω κάτι καλύτερο από την scanf για το συγκεκριμένο time input και μόνο αυτό, και όχι κάτι generic. Αν του άρεσε σίγουρα θα το έψαχνε για να μάθει πως να το κάνει καλύτερα γενικότερα.

Υπάρχει ποτέ περίπτωση να λέει κάποιος σε σοβαρό προγραμματιστή "χρησιμοποιώ την scanf() και θέλω κάτι καλύτερο" κι ο προγραμματιστής να καταλαβαίνει ότι η ερώτηση αναφέρεται σε είσοδο από οτιδήποτε άλλο εκτός από γραμμή εντολών (πόσο μάλιστα σε GUI);

 

Για την χρήση στο gui, δεν μπορείς να χρησιμοποιήσεις την fgets, Έκει θα πρέπει να φτιάξεις input δικό σου.

Τι να την κάνεις την fgets() στο GUI; Αφού το GUI σου επιστρέφει έτοιμο το string που πληκτρολογεί ο χρήστης στο textbox (και αν σε εξυπηρετεί μπορείς κατόπιν να καλέσεις την sscanf() πάνω του).

 

Γενικώς φαίνεται να τα έχεις ολίγον μπερδεμένα στο μυαλό σου.

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

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

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