Entrer des chaînes en C++: cin >>

Fermé
L. Sierra Messages postés 11 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 29 septembre 2004 - 8 nov. 2003 à 18:49
 Bob - 9 nov. 2003 à 02:49
Salut à tous:

J'ai un gros problème: je veux entrer une chaîne de caractères en C++. Si je rentre par ex. "Bonjour monsieur", et que je lui fais écrire mon texte, il ne me donne que "Bojour". A croire qu'il ne capture pas les espaces lors du cin >> :

main()
{
char test[50]="0";
cin >> test ;
cout << test << endl;
system("PAUSE");
return 0;
}

De plus, je mets par habitude "char nom[50]", mais j'ai essayé de faire des chaines de caractères de seulement 2 ou 3: "char nom[3]", et lorsque je rentre une variable + longue que 3 caractères, il l'accepte quand même... comment ça se fait ?

merci d'avance

Lionel

1 réponse

#include <cstdio>
#include <cstdlib>

int main(int argc, char *argv[])
{
char message[32];
std::scanf("%[A-Z, a-z]", &message);
std::printf("%s\n", message);
std::system("pause");
return EXIT_SUCCESS;
}
0