C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Chaines de caractère

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Nicolas Haller
Guest





PostPosted: Thu Nov 11, 2004 3:46 pm    Post subject: Chaines de caractère Reply with 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
Back to top
Jean-Marc Bourguet
Guest





PostPosted: Thu Nov 11, 2004 4:34 pm    Post subject: Re: Chaines de caractère Reply with quote



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





PostPosted: Thu Nov 11, 2004 5:58 pm    Post subject: Re: Chaines de caractère Reply with quote



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





PostPosted: Thu Nov 11, 2004 6:07 pm    Post subject: Re: Chaines de caractère Reply with quote

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





PostPosted: Thu Nov 11, 2004 7:43 pm    Post subject: Re: Chaines de caractère Reply with quote

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





PostPosted: Fri Nov 12, 2004 7:30 pm    Post subject: Re: Chaines de caractère Reply with quote

"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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.