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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:

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

Si quelqu'un pouvait m'aider... merci d'avance