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

δεν εμφανίζει σωστά τη πρόταση στην έξοδο ( C )


ntinos19

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

Δημοσ.

καλησπέρα,

 

προσπαθώ να φτιάξω ένα πρόγραμμα που το οποίο να διαβάζει απο το πληκτρολόγιο ένα κείμενο και να το εμφανίζει. Το πρόβλημα μου είναι ότι δεν δουλεύουν τα κενά (space).

δλδ αν γράψω: "είμαι ο κώστας", αυτό θα εμφανίσει μόνο τη λέξη "είμαι" (χωρίς τα "").

 

το γράφω έτσι:

 

>
char name[999];

printf ("dose mia frasi");
scanf ("%s",&name);

printf ("%s",name);

Δημοσ.

Το πρόγραμμα σωστά δουλέυει:

 

scanf ("%s",&name); = ψάξε ένα ("%s") μόνο string από το πληκτρολόγια και βάλτο στην name!

 

Η scanf ψάχνει για συμβολοσειρές χαρακτήρων εκτός του κενού: man page

 

---------- Το μήνυμα προστέθηκε στις 20:54 ----------

 

Για να κάνεις αυτό που θέλεις:

 

>
#include <stdio.h>

...

fgets(name, 999,  stdin);

Δημοσ.
καλησπέρα,

 

προσπαθώ να φτιάξω ένα πρόγραμμα που το οποίο να διαβάζει απο το πληκτρολόγιο ένα κείμενο και να το εμφανίζει. Το πρόβλημα μου είναι ότι δεν δουλεύουν τα κενά (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.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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