Ajouter un commentaire

tiger360
[C++] cin

salut tout le monde

voici le code :

do{
          cout << "nbr de ligne : "; cin>> nbl;
          cout << "nbr de colonne : ";cin >> nbc ;
          cout << "nbr de couleur : "; cin >> nbcoul ;
          }while((is_int(nbl) <5 || is_int(nbl)>14) || (is_int(nbc) <5 || is_int(nbc)>14) || (is_int(nbcoul) <3 || is_int(nbcoul)>7)) ;

int VueConsole::is_int( const string & Str )
{
    // créer un flux à partir de la chaîne donnée
    istringstream iss( Str );
    // créer un objet temporaire pour la conversion
    int tmp;
    // tenter la conversion et
    // vérifier qu'il ne reste plus rien dans la chaîne

    if( ( iss >> tmp ) && ( iss.eof()) )
     return tmp;
    else return -1;
}

au fait je demande a l utilisateur de mettre un nb de ligne de colonne et de couleur
mais mon soucis est que lorqu'il tape:

nbr de ligne : 5  5
nbr de colonne : nbr de couleur :

il considere que le 2eme argument fait partie du 2e cin
donc pour lui il considere un espace comme un delimiteur
comment puis-je faire pour que chaque demande se fasse sur une ligne pour chacunes

j'ai deja essayer getline(cin,nbl); mais au niveau de la methode is_int
si je met 5 dans le string en parametre il me retourne false alors que c est bien possible de le convertir en entier.

Cordialement.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  CCC   GGG    SSS   BBBB   EEEE 
C G S B B E
C G GG SSS BBBB EEE
C G G S B B E
CCC GGG SSSS BBBB EEEE