Cin capricieux...

cs_DJeS Messages postés 18 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 3 juin 2004 - 1 juin 2004 à 13:07
cs_DJeS Messages postés 18 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 3 juin 2004 - 3 juin 2004 à 20:04
c'est sans doute tres idiot mais bon voila...je fais un ptit prog test pr m'assurer que l'erreur viens bien d'ou je pense...:
#include

int main()
{
char cmd[30];
cout<<"Commande :"<<endl;
cin>>cmd;
cout<<cmd<<endl;
}
si je tappe disons : bonjour monsieur

cela me renvoi :

"bonjour
Commande :

monsieur
Commande :"

non seulement cela est renvoyé en deux morceaux distincts mais en plus il passe le premier commande et attend une entrée qu'aus econd...mon probleme est que j'ai l'impression qu'avec la facon dont j'utilise cin, la chaine avec espace se separe en deux...
avec mon prog qui constiste a envoyer une chaine de caractere a un serveur, le meme probleme arrive...le serveur recoit la chaine dans deux packets/messages distincts ...l'espace servant de point de demarcation...
je reste perplexe...

DJeS

4 réponses

c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005
1 juin 2004 à 13:45
cin.getline(cmd,30,'\n');
;-)

Cmill
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
1 juin 2004 à 20:17
ouai, je dirai meme

#include
#include <string>

using namespace std;
int main()
{
cout << "Commande : " << flush;
string cmd;
getline( cin, cmd );
cout << cmd << '\n';
}
0
c2millet Messages postés 198 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 15 février 2005
1 juin 2004 à 21:38
tout a fait Djl :-)
Cmill
0
cs_DJeS Messages postés 18 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 3 juin 2004
3 juin 2004 à 20:04
merci beaucoup;
quel interet yatil a utiliser des string plutot que des char dans ce cas precis?
DJeS
0
Rejoignez-nous