Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 28 Φεβ 2012, 20:06

Ilias95 έγραψε:
Δεν τα αγνοεί όλα. Η scanf αγνοεί τα κενά μόνο όταν περιμένει αριθμό (int, float κλπ).
Αν περιμένει άλλο χαρακτήρα δεν θα αγνοήσει τα κενά, αλλά θα κάνει την σύγκριση.

Edit: Εκτός αν δεν κατάλαβα καλά τι εννοείς.


Αυτο το λεει καπου μεσα στο βιβλιο πριν την σελιδα 44????
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Ilias95 » 28 Φεβ 2012, 20:08

Star_Light έγραψε:
Ilias95 έγραψε:
Δεν τα αγνοεί όλα. Η scanf αγνοεί τα κενά μόνο όταν περιμένει αριθμό (int, float κλπ).
Αν περιμένει άλλο χαρακτήρα δεν θα αγνοήσει τα κενά, αλλά θα κάνει την σύγκριση.

Edit: Εκτός αν δεν κατάλαβα καλά τι εννοείς.


Αυτο το λεει καπου μεσα στο βιβλιο πριν την σελιδα 44????

Για το πως συμπεριφέρεται όταν περιμένει αριθμό λέει στη 43 ή 44. Για τους υπόλοιπους χαρακτήρες στην 46.
Διάβασε τα όλα για να καταλάβεις όμως.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 20:09

Η scanf() είναι από τις πιο πολύπλοκες συναρτήσεις της C (αν όχι η πιο πολύπλοκη)... κάνει παπάδες αλλά δεν υπάρχει περίπτωση να θυμάται κανείς όλα της τα χαρακτηριστικά!
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 20:10

Δείτε κι εδώ που τα έχει κάπως πιο συγκεντρωμένα: http://beej.us/guide/bgc/output/html/mu ... scanf.html
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Ilias95 » 28 Φεβ 2012, 20:17

migf1 έγραψε:Η scanf() είναι από τις πιο πολύπλοκες συναρτήσεις της C (αν όχι η πιο πολύπλοκη)... κάνει παπάδες αλλά δεν υπάρχει περίπτωση να θυμάται κανείς όλα της τα χαρακτηριστικά!

Παρεμπιπτόντως, τώρα που το θυμήθηκα το πρόγραμμα της σελίδας 103 δεν δουλεύει με την mySCANF() που με είχες παροτρύνει να χρησιμοποιήσω σε προηγούμενη σελίδα, αλλά δουλεύει κανονικά με την scanf().

Υποθέτω ότι αυτό συμβαίνει γιατί η mySCANF (δηλαδή οι συναρτήσεις που χρησιμοποιούνται μέσα) διαβάζουν κατευθείαν όλη την είσοδο που υπάρχει εκείνη την στιγμή, ενώ η scanf() μπορεί να διαβάζει και χαρακτήρα, χαρακτήρα.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 20:22

Δώσε μου 5-10 λεπτά να δω τι πρόγραμμα είναι.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 20:24

Αυτό που αθροίζει ακεραίους εννοείς Ηλία; Αν ναι, θα έπρεπε να δουλεύει... τι πρόβλημα βγάζει με την mySCANF() ;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Ilias95 » 28 Φεβ 2012, 20:30

migf1 έγραψε:Αυτό που αθροίζει ακεραίους εννοείς Ηλία; Αν ναι, θα έπρεπε να δουλεύει... τι πρόβλημα βγάζει με την mySCANF() ;

Ναι, αυτό.
Το πρόβλημα φαίνεται στο παραπάνω screenshot:


Μόλις πατήσω Enter μετά το 0 απλά αλλάζει γραμμή και δεν εκτυπώνει το άθροισμα. Με την scanf() δουλεύει κανονικά.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 20:37

Α ναι, θέλει το κάθε νούμερο σε ξεχωριστή γραμμή η mySCANF() όταν είναι σε loop.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 28 Φεβ 2012, 20:52

Παντως ετσι οπως το γραφει στην σελιδα 39 στην 2η παράγραφο εμενα με μπερδευει.

"If the value to be printed requires fewer than m characters ".... Αν η προς εκτύπωση τιμή απαιτεί λιγότερους απο m χαρακτήρες αφου πιο πανω λεει οτι το m και το p ειναι ακέραιες σταθερές και το Χ ειναι το γράμμα ετσι ώστε να έχεις πχ %m.pX .... μηπως το λέει ετσι μονο επειδη βρίσκεται μεσα στο string μορφοποίησης ? αρα υποχρεωτικα οτιδηποτε υπαρχει μεσα στο string ειναι χαρακτήρες
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι