| View previous topic :: View next topic |
| Author |
Message |
Nicolas Haller Guest
|
Posted: Thu Nov 11, 2004 3:46 pm Post subject: Chaines de caractère |
|
|
Bonjour,
J'ai un petit soucis avec un problème qui doit être classique. Je dois
stocker une phrase qui est entré par l'utilisateur dans la console. La
chaine est stocké dans un objet de type string.
J'utilise pour l'instant
std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
Merci
Nicolas Haller
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Thu Nov 11, 2004 4:34 pm Post subject: Re: Chaines de caractère |
|
|
Nicolas Haller <Gaasmann (AT) boiteameuh (DOT) org> writes:
| Quote: | Bonjour,
J'ai un petit soucis avec un problème qui doit être classique. Je dois
stocker une phrase qui est entré par l'utilisateur dans la console. La
chaine est stocké dans un objet de type string.
J'utilise pour l'instant
std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
|
std::getline(std::cin, robert)
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
Patrick Mézard Guest
|
Posted: Thu Nov 11, 2004 5:58 pm Post subject: Re: Chaines de caractère |
|
|
Nicolas Haller wrote:
| Quote: | Bonjour,
J'ai un petit soucis avec un problème qui doit être classique. Je dois
stocker une phrase qui est entré par l'utilisateur dans la console. La
chaine est stocké dans un objet de type string.
J'utilise pour l'instant
std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
Merci
Nicolas Haller
|
Utilise std::getline.
///
std::string robert;
std::getline(std::cin, robert);
///
Patrick Mézard
|
|
| Back to top |
|
 |
Nicolas Haller Guest
|
Posted: Thu Nov 11, 2004 6:07 pm Post subject: Re: Chaines de caractère |
|
|
Le 11-11-2004, Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> a écrit :
| Quote: | Nicolas Haller <Gaasmann (AT) boiteameuh (DOT) org> writes:
std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
std::getline(std::cin, robert)
|
Cool, merci bien.
A bientôt
Nicolas Haller
|
|
| Back to top |
|
 |
Alexandre Guest
|
Posted: Thu Nov 11, 2004 7:43 pm Post subject: Re: Chaines de caractère |
|
|
bonjour,
| Quote: | std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
|
il ne faut pas utiliser l'opérateur >> car il s'arrete sur espace, tab et
return.
A la place il faut utiliser istream::getline, mais getline attend un char*
et une taille de buffer.... donc pas une string...
Une solution (pas très bonne mais bon)
const int TailleMaxi = 256;
char *buffer;
buffer = new char[TailleMaxi+1];
std::cin.getline(buffer,TailleMaxi);
std::string robert = buffer;
delete buffer;
| Quote: |
Merci
Nicolas Haller
|
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Fri Nov 12, 2004 7:30 pm Post subject: Re: Chaines de caractère |
|
|
"Alexandre" <alex.g (AT) netcourrier (DOT) com> writes:
| Quote: | bonjour,
std::string robert;
std::cin >> robert;
Mais la lecture s'arrête dès le première espace. Est-ce qu'il y a moyen
de contourner ce problème proprement en gardant la classe string?
il ne faut pas utiliser l'opérateur >> car il s'arrete sur
espace, tab et return. A la place il faut utiliser
istream::getline, mais getline attend un char* et une
taille de buffer.... donc pas une string...
|
A nouveau
std::getline
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
|