[C] cin et scanf !!!

cin et scanf !!! [C] - Programmation

Marsh Posté le 15-03-2001 à 04:10:02    

salut,
quand j'utilise cin ou scanf,
le texte entré arrete après le premier espace :fou:  
 
par exemple:  
 
cin >> Titre;     // et je tape :        fuck you
cout << Titre;  // affiche seulement :   fuck     :gun:  
 
est-ce que ca vous est déjà arrivé?
vous savez pourquoi ca fait ca?
:??:  :??:  :??:  
merci d'avance...

Reply

Marsh Posté le 15-03-2001 à 04:10:02   

Reply

Marsh Posté le 15-03-2001 à 05:58:13    

C'est normal, cin par defaut s'arrete au premier blanc rencontre (et non extrait). Donc pour demarrer, tu peux d'abord sauter les blanc en debut de texte (cin>>ws>>Titre; ). cin va te mettre tout le texte jusqu'au prochain blanc (ou fin de ligne), que tu peux tester par isspace(cin.peek()) et alors, tu peux boucler...
 
ou plus simplement, tu peux utiliser cin.getline(...)  
A+,

 

[edit]--Message édité par gilou--[/edit]


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻
Reply

Marsh Posté le 15-03-2001 à 14:23:27    

Il y a aussi fgets(buffer,size,stdin) (du genre de scanf mais il ne s'arrête qu'au \n et pas aux espaces) si tu veux un truc C (sans ++)

 

[edit]--Message édité par antp--[/edit]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-03-2001 à 14:29:39    

ou simplement gets()


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 15-03-2001 à 19:37:47    

merci les gars maintenant ca marche enfin!  :hello:

Reply

Marsh Posté le 16-03-2001 à 16:52:41    

jupiler a écrit a écrit :

ou simplement gets()




 
Je n'aime pas gets() pcq il ne teste pas la longueur du buffer à ma connaissance, c'est donc une source de crash. Par contre fgets() sur stdin on doit lui spécifier la longueur maximale du buffer.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed