Caractère répété deux fois
Bonjour :)
J'ai un problème assez bizarre, je pense savoir d'où ça vient, mais pas comment y remédier.
Je débute en C, j'ai crée un programme en PHP que je voudrais convertir en C sans interface, juste en command-line, j'ai donc crée ce script pour la base:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
int main()
{
printf("Usage:\n");
printf("c : Create a new file.\n");
printf("q : Quit.\n");
char command;
while(1)
{
printf(">");
command=getchar();
if(command=='c')
{
printf("Type file name:\n");
char filename[80];
scanf("%s",filename);
char buf[]="test\n";
int fd;
fd = open(filename, O_CREAT | O_RDWR, 0644);
write(fd, buf, sizeof buf);
}
if(command=='b')
{
printf("blablabla\n");
}
if(command=='q')
{
printf("Quit\n");
break;
}
}
return 0;
} |
En gros, l'utilisateur tape un lettre et une commande s'exécute, ça marche, mais il y a un hic: à chaque lettre tapée, le caractère ">" est répété deux fois:
http://img166.imageshack.us/img166/1899/image3es1.jpg
Je pense savoir d'où ça vient:
quand je tape disons 2 lettres à la suite j'obtiens ça:
>>>
et si j'appuie juste sur entrer ça donne:
> (ce qu'il faut)
J'ai l'impression que quand je tape un caractère, le caractère de retour à la ligne est aussi pris en compte, et à cause de la boucle while, tous les caractères sont traités un par un à chaque itération de la boucle, le retour à la ligne compris.
Seulement voilà, je n'ai pas la moindre idée de comment résoudre ça :cry:
Si quelqu'un pouvait m'aider... merci d'avance :)