Expliquer moi ce code svp
Résolu
asstel
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai trouvé ce code là j'ai pas compris comment il fonctionne
j'ai pas compris la condition de 'while'
expliquez moi svp
et suggerer moi des documentations qui m'aide à comprendre et maitriser ce genre de codage
voici le code :
je vous remercie infiniment.
j'ai trouvé ce code là j'ai pas compris comment il fonctionne
j'ai pas compris la condition de 'while'
expliquez moi svp
et suggerer moi des documentations qui m'aide à comprendre et maitriser ce genre de codage
voici le code :
#include <stdio.h> static void purger(void) { int c; while ((c = getchar()) != '\n' && c != EOF) {} }
je vous remercie infiniment.
A voir également:
- Expliquer moi ce code svp
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
Bonjour,
Premièrement, pour le c et c++. Ce site est ta bible:
http://www.cplusplus.com/
Si tu y recherches la fonction getchar() tu trouves ca:
http://www.cplusplus.com/reference/cstdio/getchar/?kw=getchar
Donc en gros dans ta boucle là,
Une fois cette difficulté enlevée tu te retrouves avec une boucle while assez classique. A chaque itération de boucle, getchar met un caractère dans la variable c, et vérifie que ce caractère ne soit pas \n (caractère de retour à la ligne), ou EOF (caratère de fin de fichier)
Pour mieux comprendre tout ça, lit des chapitres/tutos sur les entrées sorties en C/C++. Tout y sera expliqué. Prends ceux là par exemple:
http://www.cplusplus.com/doc/tutorial/basic_io/
http://www.cplusplus.com/doc/tutorial/files/
Bonne journée
Premièrement, pour le c et c++. Ce site est ta bible:
http://www.cplusplus.com/
Si tu y recherches la fonction getchar() tu trouves ca:
http://www.cplusplus.com/reference/cstdio/getchar/?kw=getchar
Donc en gros dans ta boucle là,
(c = getchar())ca prends un caractère que tu tapes au clavier et ca le met dans la variable c (oui c est un int, mais regardes la fonction getchar() tu vois bien que c'est un int qu'elle renvoit, donc ca colle).
Une fois cette difficulté enlevée tu te retrouves avec une boucle while assez classique. A chaque itération de boucle, getchar met un caractère dans la variable c, et vérifie que ce caractère ne soit pas \n (caractère de retour à la ligne), ou EOF (caratère de fin de fichier)
Pour mieux comprendre tout ça, lit des chapitres/tutos sur les entrées sorties en C/C++. Tout y sera expliqué. Prends ceux là par exemple:
http://www.cplusplus.com/doc/tutorial/basic_io/
http://www.cplusplus.com/doc/tutorial/files/
Bonne journée
Bonjour,
Petite précision par rapport à ce qui a été dit.
static void purger(void)
Cela permet de définir une fonction locale au fichier qui n'accepte aucun argument et ne renvoie rien.
while ((c = getchar()) != '\n' && c != EOF)
{}
On lit le buffer clavier jusqu'à récupérer le caractère '\n' ou EOF. Si le buffer est vide, on attendra qu'il se remplisse : typiquement l'utilisateur pourra taper sur son clavier.
Remarque : Le {} n'est pas très joli est pourrait être remplacé par un simple ';' en fin de while.
Ce code est très utilisé et est la façon standard de purger le buffer clavier. Par exemple, si tu as l'instruction char mot[4]; scanf("%3s", mot); et que l'utilisateur écrit "coucou", il restera des lettres dans le buffer clavier (tampon) qu'il faudra utiliser d'ici le prochain scanf() (ou équivalent).
Cdlt,
Petite précision par rapport à ce qui a été dit.
static void purger(void)
Cela permet de définir une fonction locale au fichier qui n'accepte aucun argument et ne renvoie rien.
while ((c = getchar()) != '\n' && c != EOF)
{}
On lit le buffer clavier jusqu'à récupérer le caractère '\n' ou EOF. Si le buffer est vide, on attendra qu'il se remplisse : typiquement l'utilisateur pourra taper sur son clavier.
Remarque : Le {} n'est pas très joli est pourrait être remplacé par un simple ';' en fin de while.
Ce code est très utilisé et est la façon standard de purger le buffer clavier. Par exemple, si tu as l'instruction char mot[4]; scanf("%3s", mot); et que l'utilisateur écrit "coucou", il restera des lettres dans le buffer clavier (tampon) qu'il faudra utiliser d'ici le prochain scanf() (ou équivalent).
Cdlt,
Bonjour,
While est un mot anglais... Merci, Goggle trad ;-)
Je ne connais pas grand chose à la programmation mais je n'ai pas eu besoin de cours pour savoir que plusieurs langages l'utilisent et que, en gros, ça veut dire :
- pendant que une condition est vraie
- faire quelque chose
- sinon passer à autre chose
Des détails...
While est un mot anglais... Merci, Goggle trad ;-)
Je ne connais pas grand chose à la programmation mais je n'ai pas eu besoin de cours pour savoir que plusieurs langages l'utilisent et que, en gros, ça veut dire :
- pendant que une condition est vraie
- faire quelque chose
- sinon passer à autre chose
Des détails...
j'ai compris comment elle fonctionne
mais concernant ce cite: http://www.cplusplus.com/
je pense qu'il est fait uniquement pour cpp nn?!
ou se trouve la partie de C ?
Donc si tu cherches des informations sur une fonction du C, tu la trouveras aussi sur ce site.
Plus d'informations ici:
http://www.cplusplus.com/reference/clibrary/
En revanche oui il est vrai que la plupart des tutos sont là pour t'apprendre à programmer en C++ donc il risque de t'expliquer certaines choses qui existent en C++. Comme par exemple la "surcharge de fonctions" qui est gérée nativement en C++ alors que en C, il faut bidouiller un code un peu degueu pour réussir à avoir à peu près la même chose.
Géneralement on apprends aux gens à programmer en C pour qu'ils comprennent la "programmation fonctionnelle", et le C++ pour la "programmation orientée objet".
Bref tu trouveras toutes les fonctions du C sur ce site, mais si tu veux des tutos 100% C, oui cherches ailleurs peut être dans un premier temps si tu as peur de te perdre.
merc pour votre explication
Le C++ n'est pas une évolution du C... C'est un langage différent. Les normes sont différentes. On peut dire que c'est un cousin, guère plus... Des choses possibles en C ne fonctionneront pas systématiquement en C++.