Problème Buffer
Ruben
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un petit souci avec la fonction suivante :
Voici viderBuffer :
Et voici mon main :
En fait une fois que je rentre une chaîne de caractère et appuie sur entrer lors de l'exécution, le programme "tourne dans le vide", il ne se passe rien et il ne s'arrête pas.
En mettant des marqueur avec printf il semblerait qu'il bug après l'appel de fgets dans la fonction lire()...
Pourriez-vous m'aider ?
J'ai un petit souci avec la fonction suivante :
int lire(char *Buffer)
{
char *positionEntree = NULL;
viderBuffer();
/*On lit le texte saisi au clavier */
if (fgets(Buffer, 100, stdin) != NULL) /* Pas d'erreur de saisie ? (Buffer de 100 caractères) */
{
positionEntree = strchr(Buffer, '\n'); /* On recherche l'"Entrée" */
if (positionEntree != NULL) /* Si on a trouvé le retour à la ligne */
{
*positionEntree = '\0'; /* On remplace ce caractère par \0 */
}
else
{
viderBuffer();
}
return 1; /* On renvoie 1 si la fonction s'est déroulée sans erreur */
}
else
{
viderBuffer();
return 0; /* On renvoie 0 s'il y a eu une erreur */
}
}
Voici viderBuffer :
void viderBuffer()
{
int c = 0;
while (c != '\n' && c != EOF)
{
c = getchar();
}
}
Et voici mon main :
int main()
{
Regle rg = nouvelle_regle(rg);
//Bc bc = nouvelle_Bc();
char Buffer[101];
printf("Entrez une proposition");
lire(Buffer);
En fait une fois que je rentre une chaîne de caractère et appuie sur entrer lors de l'exécution, le programme "tourne dans le vide", il ne se passe rien et il ne s'arrête pas.
En mettant des marqueur avec printf il semblerait qu'il bug après l'appel de fgets dans la fonction lire()...
Pourriez-vous m'aider ?
Configuration: Macintosh / Safari 14.0
A voir également:
- Uma frame buffer size c'est quoi
- Application frame host - Forum Virus
- 552 size limit exceeded ✓ - Forum Mail
- Concretement qu'est-ce qu'un buffer? - Forum Programmation
- System font size changer - Télécharger - Personnalisation
- Frame host c'est quoi ✓ - Forum HTML