ntinos19 Δημοσ. 11 Οκτωβρίου 2009 Δημοσ. 11 Οκτωβρίου 2009 καλησπέρα, προσπαθώ να φτιάξω ένα πρόγραμμα που το οποίο να διαβάζει απο το πληκτρολόγιο ένα κείμενο και να το εμφανίζει. Το πρόβλημα μου είναι ότι δεν δουλεύουν τα κενά (space). δλδ αν γράψω: "είμαι ο κώστας", αυτό θα εμφανίσει μόνο τη λέξη "είμαι" (χωρίς τα ""). το γράφω έτσι: > char name[999]; printf ("dose mia frasi"); scanf ("%s",&name); printf ("%s",name);
pinball_elf Δημοσ. 11 Οκτωβρίου 2009 Δημοσ. 11 Οκτωβρίου 2009 Το πρόγραμμα σωστά δουλέυει: scanf ("%s",&name); = ψάξε ένα ("%s") μόνο string από το πληκτρολόγια και βάλτο στην name! Η scanf ψάχνει για συμβολοσειρές χαρακτήρων εκτός του κενού: man page ---------- Το μήνυμα προστέθηκε στις 20:54 ---------- Για να κάνεις αυτό που θέλεις: > #include <stdio.h> ... fgets(name, 999, stdin);
ntinos19 Δημοσ. 11 Οκτωβρίου 2009 Μέλος Δημοσ. 11 Οκτωβρίου 2009 pinball_elf ευχαριστώ δούλεψε μια χαρά
imitheos Δημοσ. 11 Οκτωβρίου 2009 Δημοσ. 11 Οκτωβρίου 2009 καλησπέρα, προσπαθώ να φτιάξω ένα πρόγραμμα που το οποίο να διαβάζει απο το πληκτρολόγιο ένα κείμενο και να το εμφανίζει. Το πρόβλημα μου είναι ότι δεν δουλεύουν τα κενά (space). δλδ αν γράψω: "είμαι ο κώστας", αυτό θα εμφανίσει μόνο τη λέξη "είμαι" (χωρίς τα ""). το γράφω έτσι: > char name[999]; printf ("dose mia frasi"); scanf ("%s",&name); printf ("%s",name); > s Matches a sequence of non-white-space characters; [ Matches a non-empty sequence of characters from the specified set of accepted characters; The string is to be made up of characters in (or not in) a particular set; the set is defined by the characters between the open bracket [ character and a close bracket ] character. The set excludes those charac‐ ters if the first character after the open bracket is a circum‐ flex (^). Όπως είπε και ο pinball_elf και βλέπεις και στην manpage το %s βλέπει μέχρι το κενό. Αν θέλεις οπωσδήποτε να χρησιμοποιήσεις την scanf μπορείς να χρησιμοποιήσεις το %[ το οποίο βλέπει μόνο ένα set χαρακτήρων. π.χ > scanf ("%[^\n]",name) (Εφόσον το name είναι array δεν χρειάζεται το &) Θα δει όλους τους χαρακτήρες εκτός από τον \n δηλαδή θα δει τα πάντα μέχρι το Enter οπότε θα σου εμφανίσει όλο το string.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.