[C Multitâche] Récupérer un string sur stdin
Mazman
Messages postés
4
Statut
Membre
-
mumberea -
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 !
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 !
A voir également:
- [C Multitâche] Récupérer un string sur stdin
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer un numero supprimé - Accueil - Android
1 réponse
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)
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)