C++: getch() ne fonctionne pas...?

Résolu
Teemsis -  
 Teemsis -
Bonjour,

excusez moi mais je voudrais savoir quel est le problème de mon programme s'il vous plait.

#include <cstdlib>
#include <iostream>
#include <vector>
#include <conio.h>

using namespace std;

int main ()
{
int i;
char c;
vector<char> buffer;
do
{
c=getch();
buffer.push_back(c);
}
while (c !='\n');
for(i=0;i<buffer.size();i++)
{
cout << buffer[i];
}
system("PAUSE");
return 0;
}

Une fois compilé, lorsque j'écris dans la console on peut voir ma saisie (le getch() n'est pas censé afficher il me semble), et lorsque je fais Enter le programme ne s'arrête pas.

Une idée?

Merci d'avance.

6 réponses

  1. Nyoho
     
    Salut, essaye avec do while (c!=13 && c!=10).
    0
  2. Teemsis
     
    Non ça ne marche toujours pas, mais bizarrement avec getchar() tout va bien...
    Mais c'est getch() que je dois utiliser.

    Merci quand même Nyoho.
    0
  3. Nyoho
     
    C'est étrange chez moi tout va bien...
    Tu utilises quel IDE?
    0
  4. Teemsis
     
    Dev c++ (version mingw) avec wine sous Ubuntu 10.04.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nyoho
     
    Je pense que le problème vient de là, désolé mais je ne peux pas t'aider.
    Bonne chance.
    0
  7. Teemsis
     
    Pas de problème merci quand même.

    En effet ça doit venir du fait que sous windows getch() est contenu dans conio.h alors que sous linux getch() est contenu dans curses.h.

    D'un côté j'ai Dev c++ qui ne veut pas de curses.h et de l'autre j'ai linux qui ne veut pas de conio.h...
    0