Δημοσιεύτηκε: 01 Αύγ 2011, 16:25
από migf1
Star_Light έγραψε:και καπου εδω πιστευω καταλαβαινει κανεις ποσο κακο ειναι το προγραμμα να πεταει πραγματα που κανονικα δεν θα επρεπε... ως προς την ασφάλεια... πχ εγω δινω σαν χρηστης το οριο και αυτο μου πεταει αυτο που υπολογισε.... αρα ουσιαστικα δινει στον χρηστη την λυση του μαντέματος!


Αφού βρε συ, εσύ του λες να το τυπώσει με αυτή τη γραμμή:
Κώδικας: Επιλογή όλων
printf("%d", hidden);

:lol:

Όσο για την scanf, δεν ξέρω σε ποιο πρόβλημα αναφέρεσαι για το συγκεκριμένο προγραμματάκι, αλλά είπαμε να την καταργήσεις την scanf γενικώς!

Κάνε το συνήθεια τώρα που είναι νωρίς να διαβάζεις ολόκληρη τη γραμμή της κύριας εισόδου σε ένα string inbuf μέγιστου μήκους 256 (με την fgets ή με την s_get) και κατόπιν "τράβα" από εκεί τις μεταβλητές που θες να διαβάσεις, είτε με sscanf είτε με atoi/atol/atof.

Για τη μέγιστη μαγκιά που λες, αυτή την τεχνική ήθελα να σας δείξω και πέταξα έτσι στα ξαφνικά τον πίνακα με τα strings στην άσκηση, γιατί ως λογική χρησιμοποιείται κατά κόρον. Όχι για τόσο απλά πράγματα όπως αυτό το guessing game, αλλά είναι πολύ συνηθισμένη προσέγγιση.

Στο συγκεκριμένο, έχει και το καλό πως αν π.χ θες να αλλάξεις το τι θα λένε τα μηνύματα, τα έχεις όλα συγκεντρωμένα μέσα στον πίνακα και τα αλλάζεις εκεί. Αλλιώς, αν τα έγραφες απευθείας μέσα σε printf θα έπρεπε να ψάχνεις να τα βρεις μέσα στον κώδικά σου για να τα αλλάξεις. Κι αν κάποιο μήνυμα το τύπωνες σε πολλά μέρη το ίδιο, θα έπρεπε να τα άλλαζες όλα ένα-ένα :)

ΥΓ. Πάω να γράψω post για τα macros, ε ;