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

L. Sierra Messages postés 11 Date d'inscription   Statut Membre -  
 Bob -
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

  1. Bob
     
    #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