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

  FORUM HardWare.fr
  Programmation
  C++

  s'échapper d'un while (cin>>string)...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

s'échapper d'un while (cin>>string)...

n°1468540
rui
Strike Out Looking..
Posté le 01-11-2006 à 01:39:56  profilanswer
 

salut les surdoués du compilo.
 
je bosse le C++ avec le bouquin de koenig et Moo (accelerated c++)
j'essaie de faire l'exo 3.3 , consécutif a la decouverte des objets "vector" et autres manipulations de flux standard.
le but est de faire un programme qui demande en input des mots, et une fois que tout est rentré, qui va compter pour chaque mot le nombre de fois ou il est apparu.
 
ma version:
 

Code :
  1. #include <algorithm>
  2. #include <iomanip>
  3. #include <ios>
  4. #include <iostream>
  5. #include <string>
  6. #include <vector>
  7. using std::cin;
  8. using std::cout;
  9. using std::endl;
  10. using std::setprecision;
  11. using std::streamsize;
  12. using std::string;
  13. using std::vector;
  14. using std::sort;
  15. int main ()
  16. {
  17. //ask for strings sequence
  18. cout << "Please enter a sequence of strings" << endl;
  19. //reads the sequence and stores it in a vector
  20. std::vector<string> sequence;
  21. typedef std::vector<string>::size_type vec_sz;
  22. vec_sz size;
  23. string st;
  24. while (cin>>st)
  25. {
  26.  sequence.push_back(st);
  27. }
  28. //sorts the table
  29. sort(sequence.begin(),sequence.end());
  30. //counts the references and stores them in a vector
  31. std::vector<int> references;
  32. size=sequence.size();
  33. if(size==0)
  34. {
  35.  cout<<endl<<"Please enter a non empty sequence of strings "<<endl;
  36.  return 1;
  37. }
  38. int s=0;
  39. int count=0;
  40. string pattern;
  41. while (s!=size)
  42. {
  43.  pattern=sequence[s];
  44.  count=0;
  45.  while (sequence[count]==pattern && count<size)
  46.  {
  47.   ++count;
  48.  }
  49.  references.push_back(count);
  50.  s+=count;
  51. }
  52. //prints the results
  53. s=0;
  54. count=0;
  55. int appearances;
  56. cout << "the results are : "<<endl;
  57. while(s!=size)
  58. {
  59.  appearances=references[count];
  60.  cout << "the string : " << sequence[s] <<"appears "<<appearances<<" times "<<endl;
  61.  ++count;
  62. }
  63. return 0;
  64. }


 
mon soucis est que je ne sors jamais de la lecture sur cin :

Code :
  1. while (cin>>st)
  2. {
  3.  sequence.push_back(st);
  4. }


alors que si je lisais des entiers, un CTRL+Z me casserait la boucle.
quelqu'un sait comment contourner ce probleme?
 
merci :jap:

mood
Publicité
Posté le 01-11-2006 à 01:39:56  profilanswer
 

n°1468552
tbp
Posté le 01-11-2006 à 06:57:10  profilanswer
 

ctrl-c

n°1468562
rui
Strike Out Looking..
Posté le 01-11-2006 à 09:23:51  profilanswer
 

ca quitte le programme carrément :/
 
le but du programme etant de lire un nombre indéterminé de mots, puis une fois un echappement fait, de compter compbien de fois chaque mot apparait..


Message édité par rui le 01-11-2006 à 09:39:02
n°1468668
IrmatDen
Posté le 01-11-2006 à 14:06:50  profilanswer
 

Tu peux tester contre un mot-clé ou une absence de mot?


---------------
.
n°1468708
rui
Strike Out Looking..
Posté le 01-11-2006 à 15:43:43  profilanswer
 

j'ai essayé, ca merdouille apres .. je cherche d'ou ca peut venir..
hop c'est corrigé!
merci.
 
si quelqu'un voit une autre façon plus simple de faire ce bete programme, je suis preneur de la solution :jap:


Message édité par rui le 01-11-2006 à 16:38:25
n°1476599
Taz
bisounours-codeur
Posté le 16-11-2006 à 16:01:13  profilanswer
 

bah unix : ctrl-D
windows: ctrl-Z si je me souviens.
 
sinon tu rediriges l'entrée standard.

n°1485732
rui
Strike Out Looking..
Posté le 03-12-2006 à 19:28:34  profilanswer
 

nope, le CTRL+Z marche pas sous windows bizarrement dans ce cas :/
qu'entends-tu par rediriger vers l'ES ?


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

  s'échapper d'un while (cin>>string)...

 

Sujets relatifs
Passage d'une string C# à une std::string C++TextField.text : le String magique ?
[RESOLU] Taille maximum String et requêtesuperiorité de string
[Résolu] [C#] String et SplitMailer Error: Language string failed to load: recipients_failedme@s.fr
[JAVA] Contrôler le contenu d'un Stringplusieurs condition dans une boucle while
[NSIS][Résolu] comparaison de stringBesoin d'un test d'arrêt du While efficace!!!
Plus de sujets relatifs à : s'échapper d'un while (cin>>string)...


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