Bonjour,
J'ai créé un programme en C qui doit utiliser les switchs, donc dans ce cas, pour écrire une valeur dans une variable, il faut utiliser fgets (à part si vous avez une meilleur solution pour que je puisse récupérer au moins deux chaines de caractères avec des espaces)
Le programme marche sauf que quand j'entre le corps du messsage (char msg[199]), ça prend tout sauf le premier caractère => onjour, ça va ?
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 #include<string.h> #include <stdio.h> #include<stdlib.h> int reponse; char msg[199]; char titre[50]; main( ) { printf("Tapez 1 pour ecrire un titre et un message\n"); scanf("%d", &reponse); switch(reponse) { case 1: printf("Tapez le titre de votre message :\n"); fgetc(stdin); fgets(titre,sizeof(titre),stdin); printf("Tapez le corps de votre message :\n\n"); fgetc(stdin); fgets(msg,sizeof(msg),stdin); printf("Le titre du message est : %s\nLe corps du message est : %s", titre, msg); break; } system("PAUSE"); }
Pour le titre du message, il n'y a aucun soucis.
Où est le problème ?
Je voulais mettre fflush(stdin), mais je ne sais pas où le mettre. D'ailleurs, je ne pense pas que ce soit la bonne solution
Merci d'avance pour votre aide
Partager