1

salut tout le monde

voici le code :
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.

2

#include <cstdlib>
#include <climits>

int VueConsole::is_int( const string & Str ) 
{
  const char *p=Str.c_str(), *q;
  if (!*p) return -1;
  long l=std::strtoi(p,&q,10);
  return (*q||l<0||l>INT_MAX)?-1:l;
}


Maintenant, si tu te fais retirer des points pour code illisible, ça sera bien fait, ça t'apprendra à ne pas copier. tongue (Parce que franchement, ton problème ressemble beaucoup à "faites-moi mes devoirs".)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

4

tu ne réponds pas a la question la lol

5

Bah, la réponse à sa question, c'est que getline est bien la bonne méthode, la raison pour laquelle son getline n'a pas marché est que son parsing d'entiers ne fonctionne pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité