Expliquer moi ce code svp
Résolu/Fermé
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
-
15 juin 2014 à 15:32
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juil. 2014 à 23:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juil. 2014 à 23:36
A voir également:
- Expliquer moi ce code svp
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
3 réponses
aramir
Messages postés
939
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
222
15 juin 2014 à 15:42
15 juin 2014 à 15:42
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 juil. 2014 à 23:36
1 juil. 2014 à 23:36
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,
Chris 94
Messages postés
50978
Date d'inscription
mardi 8 janvier 2008
Statut
Modérateur
Dernière intervention
17 février 2023
7 341
15 juin 2014 à 15:39
15 juin 2014 à 15:39
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...
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
15 juin 2014 à 15:43
15 juin 2014 à 15:43
j'ai pas compris la condition (comment fonctionne cette boucle)
le while je l'ai compris :3
je vous remercie comme meme ^^
le while je l'ai compris :3
je vous remercie comme meme ^^
15 juin 2014 à 15:54
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 ?
15 juin 2014 à 18:22
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.
1 juil. 2014 à 23:01
merc pour votre explication
Modifié par fiddy le 1/07/2014 à 23:28
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++.