[C Multitâche] Récupérer un string sur stdin

Mazman Messages postés 4 Statut Membre -  
 mumberea -
Bonsoir à vous,

Je suis actuellement entrain d'écrire un programme pour un projet en multitâche. Je vous explique brièvement la structure du programme :
-> J'ai un processus père qui lance 2 fils : un serveur d'affichage et un processus de gestion de menu.

C'est au niveau du processus de gestion des menus que j'ai besoin de récupérer les choix de l'utilisateur. C'est aussi à ce niveau que ça coince !

J'affiche bien les menus, puis je demande ce que choisi le user. Pour cela, j'ai utilisé toutes les combines que je connais : scanf, fgetc, getchar... Dans tous les cas, mon processus ne se bloque PAS et n'attend pas que je lui tape qqch au clavier ! Pire encore : j'affiche ce que me retourne les différentes fonctions de lecture de flux et je tombe sur des choses qui varient selon les fonctions...

J'ai donc tenté de flusher stdin en utilisant une boucle while( (c=fgetc(stdin))!='\n' && c != EOF) avant de lire l'entrée standard, mais rien y fait.. Le processus me court-circuite à chaque fois la lecture !

N'ayant plus de cheveux sur la tête car j'ai tout arraché Je me tourne donc vers vos lumières car j'en peux vraiment plus

Merciiii !

1 réponse

mumberea
 
pour plus de précision, envoi tous le code. Il faut vérifier tes déclarations de variables.
en attendant, essai avec cette fonction: fgets. Voici son prototype:
char* fgets(char* str, int num, FILE* stream ) où
- str est le tableau qui stockera la chaine que tu saisira
- num est la taille d cette chaine
- stream est le pointeur vers le fichier à lire. Dans ton cas c'est l'entrée du clavier (dont stin)
0