[CPP] Lecture Clavier

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [CPP] Lecture Clavier

Message  Aftab007 le Lun 20 Déc 2010, 21:06

Bonsoir ,

Quand je fais une lecture au clavier sous Eclipse la fonction reste bloquer après une premiere saisi

Donc je tape => 20
Et bam il reste bloquer dans la boucle on dirais il ne passe plus rien ( le programme tourne toujours ),
tandis que sur la fenetre dos sur windows xp , la saisi clavier se fait correctement et le programme se termine.( en l'ocurance la fenetre dos se quitte toute seul)

Je voulais savoir si il ya une explication a cela ( le faite que sa soit different entre Eclipse et la fenetre Dos) ?
Il ya une solution pour palier a ce genre de souci ?
On pourait etre pénalise pour ce genre de bug qui intervient sur Eclipse ?

Enfin voila cetais quelques petite question que je me posais , merci


Dernière édition par Aftab007 le Ven 24 Déc 2010, 21:26, édité 1 fois

Aftab007

Nombre de messages : 85
Age : 28
Prénom : Aftab
Date d'inscription : 27/11/2008

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  nvs le Lun 20 Déc 2010, 21:38

indique-le dans ton rapport !

sinon, je connais le problème en c sous windows, mais ne l'ai pas encore rencontré en c++.







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  smb le Lun 20 Déc 2010, 23:20

Je ne vois pas ton problème car les codes suivants fonctionnent sans problème :

Code:

#include <iostream>
#include <cstdio>
using namespace std;
#define TEST 0
int main() {
   int x=1;
#if TEST==0
   while(x) {
      scanf("%d",&x); // lecture clavier C like
      printf("%d",x); // eclipse n'affichera qu'après avoir entré 0
   }
   cout<<"ok"<<endl;
#endif
#if TEST==1
   while(x) {
      scanf("%d",&x);
      if (x==0)
         break;
   }
   cout<<"ok"<<endl;
#endif
#if TEST==2
   while(x) {
      cin>>x;
      cout<<x;
   }
   cout<<"ok"<<endl;
#endif
#if TEST==3
   while(x) {
      cin>>x;
   if ( x==0 )
      break;
   }
   cout<<"ok"<<endl;
#endif
   return 0;
}
J'espère que tu ne mélanges pas des fonctions C et des méthodes C++ pour lire (et/ou écrire) !
santa

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  Aftab007 le Mar 21 Déc 2010, 00:25

Je me suis for inspiré du tuto sur le site du zéro dont l' intitulé est =>
" La saisie sécurisée en C++ "

Je veriffirais demain plus attentivement si il n ya pas de melange de focntion C alors ,
merci

Aftab007

Nombre de messages : 85
Age : 28
Prénom : Aftab
Date d'inscription : 27/11/2008

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  nvs le Mar 21 Déc 2010, 08:20

je viens d'aller lire ce tutoriel. il n'y a pas de mélange entre fonctions du c et du c++. je trouve l'approche beaucoup plus compliquée que celle que j'ai montrée au cours où, systématiquement, on lit toute la ligne dans une string puis on convertit via un istringstream. pour le coup, le SdZ me semble inutilement enchevêtrer le problème. mais certaines subtilités m'échappent peut-être, tel le test sous diverses plateformes.

sinon, le problème des consoles eclipse / dos vient peut-être de l'usage massif de la méthode ignore -- inutile quand on fait comme j'ai montré Wink














_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  smb le Mar 21 Déc 2010, 08:34

nvs a écrit:je viens d'aller lire ce tutoriel. il n'y a pas de mélange entre fonctions du c et du c++. je trouve l'approche beaucoup plus compliquée que celle que j'ai montrée au cours où, systématiquement, on lit toute la ligne dans une string puis on convertit via un istringstream. pour le coup, le SdZ me semble inutilement enchevêtrer le problème. mais certaines subtilités m'échappent peut-être, tel le test sous diverses plateformes.

sinon, le problème des consoles eclipse / dos vient peut-être de l'usage massif de la méthode ignore -- inutile quand on fait comme j'ai montré Wink


Tout à fait d'accord, d'autant que j'ai également expliqué au laboratoire comment réaliser une lecture sécurisée.

Bien que présent de corps, notre brave Aftab007 devait être absent d'esprit !

santa

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  nvs le Mar 21 Déc 2010, 12:27

en fait, tout à la fin du tutoriel, la lecture est réalisée dans une string avec getline, comme je l'ai encouragé au cours, avant conversion en int. cependant, le code est compliqué, comme dans bool saisir_string(string &variable, const string &message) :
Code:
        if(cin.bad() || cin.eof())
        {
            cerr << "Erreur, saisie incorrecte." << endl;
            if(cin.eof())
            {
                break;
            }
            vider_buffer();
        }
        else if(cin.fail())
        {
            cerr << "Erreur, saisie incorrecte." << endl;
            vider_buffer();
        }
qui peut s'écrire plus simplement :
Code:
        if(cin.fail() || cin.eof())
        {
            cerr << "Erreur, saisie incorrecte." << endl;
            if(cin.eof())
            {
                break;
            }
            vider_buffer();
        }
où, pour ce que j'en sais, appeler vider_buffer() -- qui peut appeler ignore (d'où blocage possible de la console) -- est inutile car on vient de lire avec getline...






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  Aftab007 le Mar 21 Déc 2010, 17:20

C'est vrais que c' est assez long comme code , j 'en ai parlers avec quelques personne a l' école et je vais peut etre me tourner vers une approche plus semblable aux exemple donner a l' ecole . c'est plus cour et au moin sa focntionne bien sur eclipse,

merci pour ces explications : )

Aftab007

Nombre de messages : 85
Age : 28
Prénom : Aftab
Date d'inscription : 27/11/2008

Revenir en haut Aller en bas

resolu Re: [CPP] Lecture Clavier

Message  Contenu sponsorisé Aujourd'hui à 01:09


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum