cin desynchro! [resolu]

cin desynchro! [resolu] - C++ - Programmation

Marsh Posté le 21-02-2005 à 20:17:35    

prkoi aprés un cin >> truc on peut plus faire de getline()?
 

Code :
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. int a;
  7. string b;
  8. cout << "car ";
  9. cin >> a ;
  10.    
  11. cout << "ligne:"<<endl;
  12. getline(cin, b);
  13. std::cout << '"' << a << '"'
  14.              << '\n'
  15.              << '"' << b << '"'
  16.              << '\n';
  17.    
  18. system("PAUSE" );
  19. return EXIT_SUCCESS;
  20. }


Message édité par yoskater le 23-02-2005 à 21:35:36
Reply

Marsh Posté le 21-02-2005 à 20:17:35   

Reply

Marsh Posté le 21-02-2005 à 20:19:01    

normalement ça doit fonctionné, tu travailles avec quel compilo?

Reply

Marsh Posté le 21-02-2005 à 20:19:24    

dev cpp donc g++

Reply

Marsh Posté le 21-02-2005 à 20:28:55    

ok bon ben aprés le  
cin >> a;
il faut
cin.sync();
puis apres
cin.getline(...); fonctionne
 
 
10 balles si kk1 m'explique prkoi?

Reply

Marsh Posté le 21-02-2005 à 20:34:35    

Bah il reste un retour chariot non consommé par ton cin sur ta première ligne, non ?

Reply

Marsh Posté le 22-02-2005 à 02:23:45    

cin >> var;
 
c 2 return?

Reply

Marsh Posté le 23-02-2005 à 19:03:03    

pas besoin d'utiliser std:: tu as déclaré l'espace de nom standard using namespace std;

Reply

Marsh Posté le 23-02-2005 à 20:41:24    

yoskater a écrit :

cin >> var;
 
c 2 return?


Non, un seul. Mais comme le '\n' n'a pas été consommé, il est tjrs là, et du coup tu lis une chaine vide avec getline.

Citation :

This example demonstrates how sync behaves on cin, removing any unread character from the standard input character queue


http://www.cplusplus.com/ref/iostr [...] /sync.html


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 23-02-2005 à 21:06:10    

y a bah besoin de sync entre cout et cin, voir la fonction membre tie

Reply

Marsh Posté le 23-02-2005 à 21:35:16    

ah bah oui...merci ;)
 


Message édité par yoskater le 23-02-2005 à 21:36:13
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed