[débutant] 1er programme, j'aimerais vos commentaires.
91 réponses
Beware
Bonjour,
D=E9butant dans l'apprentissage du langage C, j'ai cr=E9e un petit
programme, un jeu du pendu. Le jeu =E0 l'air de fonctionner. Je dis
"l'air de", car il est probable qu'il reste des bugs que je dois
corriger.
Cependant ce n'est pas l'objet de ma question. En effet, dans un souci
de m'am=E9liorer je d=E9sirerais avoir les commentaires de personnes
connaissant et maitrisant mieux le langage C que moi.
Les fichiers du programme (main.c, pendu.h et dico.txt) sont
disponible ici :
http://beware007.free.fr/Projet_C/Pendu/
Merci d'avance pour votre aide, vos commentaire et critiques.
Le 19-03-2009, ? propos de Re: 1er programme, j'aimerais vos commentaires., YBM ?crivait dans fr.comp.lang.c :
JKB a écrit :
Le 19-03-2009, ? propos de Re: 1er programme, j'aimerais vos commentaires., YBM ?crivait dans fr.comp.lang.c :
Kojak a écrit :
Le Thu, 19 Mar 2009 18:26:50 +0100, YBM a écrit :
Une remarque - hors sujet - mais importante pour toi : Free fait régulièrement le ménage sur les sites hébergés jugés non conforme. Or le tiens ne l'est pas selon leurs critères : il n'y a que des répertoires accessibles par des index. Tu risque fort de voir ton espace perso fermé un de ces jours.
Tu es sérieux là ? Parce que honnêtement je ne vois pas ce que le site de l'OP peut avoir de répréhensible ! Si tu as vraiment raison, ben, ma foi, j'aurais bien des choses à dire, mais bon...
Bref, je suis vraiment très étonné !
C'est comme ça, c'est la politique de Free : un "vrai" site hébergé gratuitement doit être 1) public en majorité (pas de htpasswd partout ou à la racine), 2) constitué de pages HTML reliées entre elles et 3) ne pas servir au stockage de fichiers.
Et j'ajouterais que même avec ça, si tu génères trop de trafic, ton site sera malencontreusement fermé à la suite d'une fausse manip. J'ai un site d'association qui est passé comme ça à la trappe...
Hmmm... Ça j'en doute. Il arrive aussi des fausse manip ou des crash de disques... Et comme il n'y a pas de sauvegardes côté Free pour les pages perso....
Ton site d'association il s'est trouvé vidé, pas blacklisté avec erreur 503 ?
Il a été vidé et a été fermé. Depuis, il tourne chez moi directement.
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Le 19-03-2009, ? propos de
Re: 1er programme, j'aimerais vos commentaires.,
YBM ?crivait dans fr.comp.lang.c :
JKB a écrit :
Le 19-03-2009, ? propos de
Re: 1er programme, j'aimerais vos commentaires.,
YBM ?crivait dans fr.comp.lang.c :
Kojak a écrit :
Le Thu, 19 Mar 2009 18:26:50 +0100,
YBM a écrit :
Une remarque - hors sujet - mais importante pour toi : Free fait
régulièrement le ménage sur les sites hébergés jugés non conforme.
Or le tiens ne l'est pas selon leurs critères : il n'y a que des
répertoires accessibles par des index. Tu risque fort de voir
ton espace perso fermé un de ces jours.
Tu es sérieux là ? Parce que honnêtement je ne vois pas ce que
le site de l'OP peut avoir de répréhensible ! Si tu as vraiment
raison, ben, ma foi, j'aurais bien des choses à dire, mais bon...
Bref, je suis vraiment très étonné !
C'est comme ça, c'est la politique de Free : un "vrai" site
hébergé gratuitement doit être 1) public en majorité (pas
de htpasswd partout ou à la racine), 2) constitué de pages
HTML reliées entre elles et 3) ne pas servir au stockage
de fichiers.
Et j'ajouterais que même avec ça, si tu génères trop de trafic, ton
site sera malencontreusement fermé à la suite d'une fausse manip. J'ai
un site d'association qui est passé comme ça à la trappe...
Hmmm... Ça j'en doute. Il arrive aussi des fausse manip ou des
crash de disques... Et comme il n'y a pas de sauvegardes côté
Free pour les pages perso....
Ton site d'association il s'est trouvé vidé, pas blacklisté
avec erreur 503 ?
Il a été vidé et a été fermé. Depuis, il tourne chez moi
directement.
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Le 19-03-2009, ? propos de Re: 1er programme, j'aimerais vos commentaires., YBM ?crivait dans fr.comp.lang.c :
JKB a écrit :
Le 19-03-2009, ? propos de Re: 1er programme, j'aimerais vos commentaires., YBM ?crivait dans fr.comp.lang.c :
Kojak a écrit :
Le Thu, 19 Mar 2009 18:26:50 +0100, YBM a écrit :
Une remarque - hors sujet - mais importante pour toi : Free fait régulièrement le ménage sur les sites hébergés jugés non conforme. Or le tiens ne l'est pas selon leurs critères : il n'y a que des répertoires accessibles par des index. Tu risque fort de voir ton espace perso fermé un de ces jours.
Tu es sérieux là ? Parce que honnêtement je ne vois pas ce que le site de l'OP peut avoir de répréhensible ! Si tu as vraiment raison, ben, ma foi, j'aurais bien des choses à dire, mais bon...
Bref, je suis vraiment très étonné !
C'est comme ça, c'est la politique de Free : un "vrai" site hébergé gratuitement doit être 1) public en majorité (pas de htpasswd partout ou à la racine), 2) constitué de pages HTML reliées entre elles et 3) ne pas servir au stockage de fichiers.
Et j'ajouterais que même avec ça, si tu génères trop de trafic, ton site sera malencontreusement fermé à la suite d'une fausse manip. J'ai un site d'association qui est passé comme ça à la trappe...
Hmmm... Ça j'en doute. Il arrive aussi des fausse manip ou des crash de disques... Et comme il n'y a pas de sauvegardes côté Free pour les pages perso....
Ton site d'association il s'est trouvé vidé, pas blacklisté avec erreur 503 ?
Il a été vidé et a été fermé. Depuis, il tourne chez moi directement.
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Beware
On 19 mar, 21:43, Pierre Maurette wrote:
Il y avait un problème plus basique que j'avais hésité à signaler . Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr...
-- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
On 19 mar, 21:43, Pierre Maurette <maurettepie...@wanadoo.fr> wrote:
Il y avait un problème plus basique que j'avais hésité à signaler .
Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au
bout du lien dans le premier message la dernière version du travail.
Remarquez, on a un problème approchant avec les cjoint et autres
hébergeurs temporaire de contenu, dont dl.free.fr...
--
Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble
des versions du programme, sachant que c'est juste un projet personne.
Cependant étant donné que mon projet est stocké sur un serveur SVN
perso, je peut retrouver toutes les versions du programme.
Il y avait un problème plus basique que j'avais hésité à signaler . Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr...
-- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
Alexandre Bacquart
Beware wrote:
On 19 mar, 21:43, Pierre Maurette wrote:
Il y avait un problème plus basique que j'avais hésité à signaler. Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr...
-- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
Beware wrote:
On 19 mar, 21:43, Pierre Maurette <maurettepie...@wanadoo.fr> wrote:
Il y avait un problème plus basique que j'avais hésité à signaler.
Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au
bout du lien dans le premier message la dernière version du travail.
Remarquez, on a un problème approchant avec les cjoint et autres
hébergeurs temporaire de contenu, dont dl.free.fr...
--
Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble
des versions du programme, sachant que c'est juste un projet personne.
Cependant étant donné que mon projet est stocké sur un serveur SVN
perso, je peut retrouver toutes les versions du programme.
Il y avait un problème plus basique que j'avais hésité à signaler. Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr...
-- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
Beware
On 20 mar, 03:14, Alexandre Bacquart wrote:
Beware wrote: > On 19 mar, 21:43, Pierre Maurette wrote: >> Il y avait un problème plus basique que j'avais hésité à signa ler. >> Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au >> bout du lien dans le premier message la dernière version du travail. >> Remarquez, on a un problème approchant avec les cjoint et autres >> hébergeurs temporaire de contenu, dont dl.free.fr...
>> -- >> Pierre Maurette
> En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble > des versions du programme, sachant que c'est juste un projet personne. > Cependant étant donné que mon projet est stocké sur un serveur SV N > perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
je l'ai pris du bon coté, j'espère que j'ai raison :). En fait, le serveur SVN c'est pour m'amuser et simplifier les choses. Comme je suis en dual boot sur mon pc perso, je peut facilement acceder aux fichiers du projet.
On 20 mar, 03:14, Alexandre Bacquart <tek...@free.DELETEME.fr> wrote:
Beware wrote:
> On 19 mar, 21:43, Pierre Maurette <maurettepie...@wanadoo.fr> wrote:
>> Il y avait un problème plus basique que j'avais hésité à signa ler.
>> Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au
>> bout du lien dans le premier message la dernière version du travail.
>> Remarquez, on a un problème approchant avec les cjoint et autres
>> hébergeurs temporaire de contenu, dont dl.free.fr...
>> --
>> Pierre Maurette
> En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble
> des versions du programme, sachant que c'est juste un projet personne.
> Cependant étant donné que mon projet est stocké sur un serveur SV N
> perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
--
Alex
je l'ai pris du bon coté, j'espère que j'ai raison :).
En fait, le serveur SVN c'est pour m'amuser et simplifier les choses.
Comme je suis en dual boot sur mon pc perso, je peut facilement
acceder aux fichiers du projet.
Beware wrote: > On 19 mar, 21:43, Pierre Maurette wrote: >> Il y avait un problème plus basique que j'avais hésité à signa ler. >> Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au >> bout du lien dans le premier message la dernière version du travail. >> Remarquez, on a un problème approchant avec les cjoint et autres >> hébergeurs temporaire de contenu, dont dl.free.fr...
>> -- >> Pierre Maurette
> En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble > des versions du programme, sachant que c'est juste un projet personne. > Cependant étant donné que mon projet est stocké sur un serveur SV N > perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
je l'ai pris du bon coté, j'espère que j'ai raison :). En fait, le serveur SVN c'est pour m'amuser et simplifier les choses. Comme je suis en dual boot sur mon pc perso, je peut facilement acceder aux fichiers du projet.
Alexandre Bacquart
Beware wrote:
On 20 mar, 03:14, Alexandre Bacquart wrote:
Beware wrote:
On 19 mar, 21:43, Pierre Maurette wrote:
Il y avait un problème plus basique que j'avais hésité à signaler. Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr... -- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
je l'ai pris du bon coté, j'espère que j'ai raison :).
Il n'y avait pas de sens caché dans ma remarque, si c'est ce que tu veux savoir. Pour quelqu'un qui débute (si tu préfères, étant donné que "débutant" peut avoir une connotation péjorative, mais je te rappelle que c'est toi qui te qualifie ainsi dans ton premier post), je trouve que tu prends la chose avec un sérieux qui fait plaisir à voir. Voilà voilà.
-- Alex
Beware wrote:
On 20 mar, 03:14, Alexandre Bacquart <tek...@free.DELETEME.fr> wrote:
Beware wrote:
On 19 mar, 21:43, Pierre Maurette <maurettepie...@wanadoo.fr> wrote:
Il y avait un problème plus basique que j'avais hésité à signaler.
Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au
bout du lien dans le premier message la dernière version du travail.
Remarquez, on a un problème approchant avec les cjoint et autres
hébergeurs temporaire de contenu, dont dl.free.fr...
--
Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble
des versions du programme, sachant que c'est juste un projet personne.
Cependant étant donné que mon projet est stocké sur un serveur SVN
perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
--
Alex
je l'ai pris du bon coté, j'espère que j'ai raison :).
Il n'y avait pas de sens caché dans ma remarque, si c'est ce que tu veux
savoir. Pour quelqu'un qui débute (si tu préfères, étant donné que
"débutant" peut avoir une connotation péjorative, mais je te rappelle
que c'est toi qui te qualifie ainsi dans ton premier post), je trouve
que tu prends la chose avec un sérieux qui fait plaisir à voir. Voilà voilà.
Il y avait un problème plus basique que j'avais hésité à signaler. Quelqu'un qui arrive aujourd'hui sur le fil de discussion trouvera au bout du lien dans le premier message la dernière version du travail. Remarquez, on a un problème approchant avec les cjoint et autres hébergeurs temporaire de contenu, dont dl.free.fr... -- Pierre Maurette
En fait, je ne pensais pas que cela etait utilie de fournir l'ensemble des versions du programme, sachant que c'est juste un projet personne. Cependant étant donné que mon projet est stocké sur un serveur SVN perso, je peut retrouver toutes les versions du programme.
Il m'épate ce "débutant" :)
-- Alex
je l'ai pris du bon coté, j'espère que j'ai raison :).
Il n'y avait pas de sens caché dans ma remarque, si c'est ce que tu veux savoir. Pour quelqu'un qui débute (si tu préfères, étant donné que "débutant" peut avoir une connotation péjorative, mais je te rappelle que c'est toi qui te qualifie ainsi dans ton premier post), je trouve que tu prends la chose avec un sérieux qui fait plaisir à voir. Voilà voilà.
-- Alex
candide
Je relis (encore et toujours !) K&R2 et je tombe sur ça :
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf("%d is a leap yearn", year); else printf("%d is not a leap yearn", year);
Je fais un tour dans mes archives de sources et je tombe sur ça (tout le monde aura reconnu l'origine):
/* --------------------------------------------------------------------- is_leap() --------------------------------------------------------------------- Role : --------------------------------------------------------------------- E : year (YYYY) S : 0=err 1=ok --------------------------------------------------------------------- */ static int is_leap (uint const year) { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); }
et encore sur ça (code source de l'implémentation de Ruby):
au point que j'en viendrai à douter de la priorité des opérateurs, mais non, = est prioritaire sur && qui est bien prioritaire sur ||.
Et ça m'a fait penser à ce que tu écrivais ci-dessous :
Marc Espie a écrit :
- les parentheses de: ((etat_rejouer == REJOUER_MENU) || (etat_rejouer == REJOUER_NORMAL)) sont inutiles.
Tu as raison, c'est peut etre bete, mais je vois mieux les conditions comme ca.
Manque d'habitude. En tout cas le resultat est peu idiomatique. Il faut t'habituer a l'idee qu'on ecrit souvent du code de facon standard, et que tout programmeur C normalement constitue saura le lire sans les parentheses supplementaires !
Je relis (encore et toujours !) K&R2 et je tombe sur ça :
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
printf("%d is a leap yearn", year);
else
printf("%d is not a leap yearn", year);
Je fais un tour dans mes archives de sources et je tombe sur ça (tout le monde
aura reconnu l'origine):
/* ---------------------------------------------------------------------
is_leap()
---------------------------------------------------------------------
Role :
---------------------------------------------------------------------
E : year (YYYY)
S : 0=err 1=ok
--------------------------------------------------------------------- */
static int is_leap (uint const year)
{
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
et encore sur ça (code source de l'implémentation de Ruby):
au point que j'en viendrai à douter de la priorité des opérateurs, mais non, = est prioritaire sur && qui est bien prioritaire sur ||.
Et ça m'a fait penser à ce que tu écrivais ci-dessous :
Marc Espie a écrit :
- les parentheses de:
((etat_rejouer == REJOUER_MENU) || (etat_rejouer == REJOUER_NORMAL))
sont inutiles.
Tu as raison, c'est peut etre bete, mais je vois mieux les conditions
comme ca.
Manque d'habitude. En tout cas le resultat est peu idiomatique. Il faut
t'habituer a l'idee qu'on ecrit souvent du code de facon standard, et que
tout programmeur C normalement constitue saura le lire sans les parentheses
supplementaires !
au point que j'en viendrai à douter de la priorité des opérateurs, mais non, = est prioritaire sur && qui est bien prioritaire sur ||.
Et ça m'a fait penser à ce que tu écrivais ci-dessous :
Marc Espie a écrit :
- les parentheses de: ((etat_rejouer == REJOUER_MENU) || (etat_rejouer == REJOUER_NORMAL)) sont inutiles.
Tu as raison, c'est peut etre bete, mais je vois mieux les conditions comme ca.
Manque d'habitude. En tout cas le resultat est peu idiomatique. Il faut t'habituer a l'idee qu'on ecrit souvent du code de facon standard, et que tout programmeur C normalement constitue saura le lire sans les parentheses supplementaires !
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur Descartes n'est pas descartien, mais cartésien. Qu'on se le dise. -- F. J.
Antoine Leca <root@localhost.invalid> wrote:
descartienne
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la
netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur
Descartes n'est pas descartien, mais cartésien. Qu'on se le dise.
--
F. J.
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur Descartes n'est pas descartien, mais cartésien. Qu'on se le dise. -- F. J.
Pierre Maurette
François Jacquemin, le 01/06/2009 a écrit :
Antoine Leca wrote:
descartienne
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur Descartes n'est pas descartien,
Justement, si.
mais cartésien.
"cartésien" est relatif à la logique développée par le philosophe mathématicien.
-- Pierre Maurette
François Jacquemin, le 01/06/2009 a écrit :
Antoine Leca <root@localhost.invalid> wrote:
descartienne
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la
netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur
Descartes n'est pas descartien,
Justement, si.
mais cartésien.
"cartésien" est relatif à la logique développée par le philosophe
mathématicien.
J'en avale, sur ce groupe, des couleuvres langagières, au nom de la netiquette, mais là, c'est trop ! L'adjectif correspondant au sieur Descartes n'est pas descartien,
Justement, si.
mais cartésien.
"cartésien" est relatif à la logique développée par le philosophe mathématicien.