Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1199 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Récupérer une chaine saisie par l'utilisateur : cin, getline...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Récupérer une chaine saisie par l'utilisateur : cin, getline...

n°534513
antsite
Je me souviens
Posté le 08-10-2003 à 16:30:49  profilanswer
 

Salut,
Je voudrais savoir quelle fonction faut-il préférer pour ce genre d'opération :
std::string s;
 
cin >> s;
ou
cin.getline(s, s.max_size());
ou
getline(cin, s);
 
ou mieux si vous avez!
merci
   ANT

mood
Publicité
Posté le 08-10-2003 à 16:30:49  profilanswer
 

n°534515
jagstang
Pa Capona ಠ_ಠ
Posté le 08-10-2003 à 16:32:20  profilanswer
 

buffer overflow avec la 2ème


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°534527
antsite
Je me souviens
Posté le 08-10-2003 à 16:37:07  profilanswer
 

ouais j'aime pas trop cette forme, pour l'instant j'utilise la dernière mais je suis incapable d'arguementer mon choix...

n°534591
Taz
bisounours-codeur
Posté le 08-10-2003 à 17:29:08  profilanswer
 

je comprends pas la raison d'être de ce topic : si on veut lire une ligne entière dans une string, c'est obligatoirement la fonction getline, si on veut lire un mot dans une string l'opérateur >> des istream va bien (mais getline peut fonctionner également)
 
quand à votre prétendue fonction membre istream::getline(string &, size_t) elle n'existe pas.
 
donc je ne vois aucun problème


Message édité par Taz le 08-10-2003 à 17:30:47
n°534994
LetoII
Le dormeur doit se réveiller
Posté le 09-10-2003 à 08:55:18  profilanswer
 

Taz a écrit :

je comprends pas la raison d'être de ce topic : si on veut lire une ligne entière dans une string, c'est obligatoirement la fonction getline, si on veut lire un mot dans une string l'opérateur >> des istream va bien (mais getline peut fonctionner également)
 
quand à votre prétendue fonction membre istream::getline(string &, size_t) elle n'existe pas.
donc je ne vois aucun problème


 

Citation :


istream members:  
(constructor) Construct an object  
operator>> Perform formatted input operation (extraction)  
gcount Get number of characters extracted by last unformatted input operation  
get Extract unformatted data from stream  
getline Get a line from stream  
ignore Extract and discard characters  
peek Peek next character  
putback Put the last character back to stream  
read Read a block of data  
readsome Read a block of data  
seekg Set position of the get pointer  
sync Syncronize stream's buffer with source of characters  
tellg Get position of the get pointer  
unget Make last character got from stream available again  
(destructor) No-op [virtual]  


 
Source: http://www.cplusplus.com/ref/iostr [...] index.html
 
Testé avec gcc 3.2.3:

Code :
  1. #include <istream>
  2. #include <iostream>
  3. int main(int,char**)
  4. {
  5. using namespace std;
  6. char buffer[513];
  7. cin.getline(buffer,512);
  8. cout << buffer << endl;
  9. return 0;
  10. }


 
Effectivement elle n'existe pas mais je pense qu'il a fait une faute de frappe/recopie en mettant une string à la place d'un char*  [:spamafote]
 
PS: je ne trouve pas cette méthode très utile/pratique


Message édité par LetoII le 09-10-2003 à 09:16:54

---------------
Le Tyran
n°534995
chrisbk
-
Posté le 09-10-2003 à 08:58:45  profilanswer
 

ouais enfin toi tu prends un char * et taz parlait de prendre un string & (:O)
 
edit de fourbe :O :D


Message édité par chrisbk le 09-10-2003 à 08:59:11
n°535001
LetoII
Le dormeur doit se réveiller
Posté le 09-10-2003 à 09:20:01  profilanswer
 

chrisbk a écrit :

ouais enfin toi tu prends un char * et taz parlait de prendre un string & (:O)
 
edit de fourbe :O :D
 


 
Faut laisser le temps aux gens de finir avant de leur gueuler dessus  :pfff:


---------------
Le Tyran
n°535005
Taz
bisounours-codeur
Posté le 09-10-2003 à 09:22:20  profilanswer
 

chrisbk a écrit :

ouais enfin toi tu prends un char * et taz parlait de prendre un string & (:O)

:o [:taz]
y a pas de faute de frappe possible, vous vous êtes lamentablement plantés


Message édité par Taz le 09-10-2003 à 09:23:01
n°535010
chrisbk
-
Posté le 09-10-2003 à 09:27:58  profilanswer
 

Taz a écrit :

:o [:taz]
y a pas de faute de frappe possible, vous vous êtes lamentablement plantés


 
:heink:
 
j'ai rien dit, moi, hein ?

n°535011
Taz
bisounours-codeur
Posté le 09-10-2003 à 09:29:21  profilanswer
 

je te plussoyer :o

mood
Publicité
Posté le 09-10-2003 à 09:29:21  profilanswer
 

n°535013
LetoII
Le dormeur doit se réveiller
Posté le 09-10-2003 à 09:30:32  profilanswer
 

Taz a écrit :

:o [:taz]
y a pas de faute de frappe possible, vous vous êtes lamentablement plantés


 
Seul l'intéréssé peu répondre  [:spamafote]  
 
De toute façon l'intéret de cette méthode est nule  [:spamafote]


---------------
Le Tyran
n°536192
antsite
Je me souviens
Posté le 10-10-2003 à 15:13:15  profilanswer
 

oui merci bien, j'utilise le getline(cin, string) qui me convient très bien!
au fait, Taz a bien dit pas de char* en c++ ? donc que des string quand on manipule des chaines de caractères ? c'est juste pour être sur...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Récupérer une chaine saisie par l'utilisateur : cin, getline...

 

Sujets relatifs
Comment recupérer de l'espace disque en C?[MySQL] récupérer le premier élément d'une structure hiérarchique...
Comment recuperer une notification d'insertion CD en java?[MySQL + PHP] Récupérer ne nb d'elements effacés par DELETE
Récupérer les infos ou sauvegarder une main frameRécupérer le FSB et/ou le coef mult. d'un CPU ...
[shell] comment récupérer 2 lignesProbleme de gneneration de chaine (excel)
récupérer le 'www' d'un nom de domaine [ - Job's Done - ]comment recuperer un objet en vb excel ??
Plus de sujets relatifs à : [C++] Récupérer une chaine saisie par l'utilisateur : cin, getline...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR