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

Nyoho
 
Salut, essaye avec do while (c!=13 && c!=10).
0
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
Nyoho
 
C'est étrange chez moi tout va bien...
Tu utilises quel IDE?
0
Teemsis
 
Dev c++ (version mingw) avec wine sous Ubuntu 10.04.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nyoho
 
Je pense que le problème vient de là, désolé mais je ne peux pas t'aider.
Bonne chance.
0
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