Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 16/12/2010, à 23:56

Pylades

/* Topic des codeurs couche-tard [3] */

Bienvenue dans le TdCCT 0x3.

Ceci est la suite de ce fil.

Voici le rappel des règles du jeu, formulées par le message initial de samuncle :

samuncle a écrit :

Bienvenue dans ce nouveau topic psychédélique, ou le but est de coder le plus tard possible (oui, c'est bien connu, il est plus facile de coder la nuit).

Un compteur viendra, chaque matin, poster le nouveau score, normalement à sept heures et quarante-deux minutes.

Voici le barème en fonction de l'heure du dernier message posté :

                [21 h, 22 h[ → 1 point ;
                [22 h, 23 h[ → 2 points ;
                [23 h, 0 h[ → 3 points ;
                [0 h, 1 h[ → 4 points ;
                [1 h, 2 h[ → 5 points ;
                [2 h, 3 h[ → 6 points ;
                [3 h, 5 h[ → 10 points ;

On ne marque plus de points après cinq heures. Les points ne se cumulent pas si l'on poste toutes les heures.

Historique des précédents fils :
        • Topic des codeurs couche-tard [0] : du 14 avril 2010 au 12 juin 2010 (100 pages).
        • Topic des codeurs couche-tard [1] : du 12 juin 2010 au 5 septembre 2010 (100 pages).
        • Topic des codeurs couche-tard [2] : du 5 septembre 2010 au 16 décembre 2010 (100 pages).


Amusez-vous bien, et produisez-nous du beau code. smile

Dernière modification par Pylade (Le 16/12/2010, à 23:59)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2 Le 17/12/2010, à 00:05

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

Ouais, bah, si toi t'as besoin de faire des tests, je crois que moi je vais juste attendre patiemment ^^"

Ouais, en fait non ce n'est pas super concluant (ce n'est pas de la faute de scanf, mais de moi qui avait trop simplifié ton problème).

ArkSeth a écrit :
grim7reaper a écrit :

C'est à toi de mettre la bonne valeur dans le bon champ et d'accéder au bon champ quand il faut.

Ouais, donc en gros, c'est un genre de structure, mais avec un seul champ « actif » à la fois, on dirait… ça a l'air moins terrible que ce que je croyais ^^

Oui, en gros c'est ça smile

Dernière modification par grim7reaper (Le 17/12/2010, à 00:13)

Hors ligne

#3 Le 17/12/2010, à 00:09

Pylades

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

[…]
@Pylade : alors, Python ou C pour le concours smile ?

Je crois que je m'oriente vers du C post-partiels…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#4 Le 17/12/2010, à 00:14

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Je peux te laisser l'honneur si tu veux (mais cite mon message, j'ai modifié quelques trucs)…

Merci, mais ça ira. J'ai signalé le mien et l'ai fait pointer sur le tien en attendant smile


Pylade a écrit :
grim7reaper a écrit :

[…]
@Pylade : alors, Python ou C pour le concours smile ?

Je crois que je m'oriente vers du C post-partiels…

Ok.
Ça se termine quand tes partiels (bon courage d'ailleurs) ?

Hors ligne

#5 Le 17/12/2010, à 00:17

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Défi du TdCCT

Version actuelle des règles : 0.1 alpha

Principe : un utilisateur (membre ou non du TdCCT) propose un sujet de logiciel à coder. Les membres actifs du TdCCT discutent ensuite de son intérêt et de sa faisabilité : le projet ne doit pas être trop simple (c'est un défi), mais pas trop complexe non plus (il doit être ouvert à tous les participants).

Si le sujet est accepté, le commanditaire doit alors énoncer des spécifications précises (qui pourront cependant être adaptées selon les remarques), divisées en deux parties : fonctionnalités requises, et fonctionnalités appréciées. Les personnes souhaitant participer au défi estiment alors sa difficulté réelle en se mettant d'accord sur un nombre de points à attribuer au projet en fonction de cette spécification.

Le langage utilisé est laissé au choix du candidat, mais le code doit être placé sous licence Libre. À tout moment durant le code, la communauté des Codeurs Couche-Tard peut être consultée pour aider à résoudre les problèmes techniques (le but n'est pas seulement de coder, mais également de progresser dans le codage), et le commanditaire peut préciser les points de la spécification posant problème.

Une fois le projet terminé, le commanditaire teste les différentes productions des candidats, et estime le nombre de points qu'ils méritent pour ce résultat (toutes les fonctionnalités requises sont-elles bien présentes ? Combien de fonctionnalités optionnelles ont été ajoutées ? Etc.…), et ces points sont ajoutés au compteur de points du TdCCT (sauf demande du candidat, suite à blacklistage par exemple).

Défi actuel : Command Line File Browser (proposé par ArkSeth)

Spécifications du CLFB, version 0.2

Rédacteur principal : ArkSeth/Elzen.
Contributeurs : grim7reaper, Pylade.

Les présentes spécifications sont ouvertes à la discussion. Les points notés requis sont indispensables à la validation du logiciel. Ceux notés optionnels ne le sont pas, mais leur réalisation serait vivement appréciée.
Pour toute question ou suggestion concernant ces spécifications, ainsi que pour toute demande d'aide sur le codage, en l'absence d'un espace dédié sur fadrienn.irlnc.org, se référer au TdCCT actuel.

Deux modes existent pour le programme, un « mode bavard » et un « mode silencieux ». Lorsque le premier est actif, le programme affiche sur la sortie standard, avant chaque opération, une ligne explicitant la commande Shell à utiliser pour obtenir le même résultat (lorsque existant), précédé par un caractère "#".
Le mode silencieux est activé par défaut, et les options permettant de basculer en mode bavard sont ci-dessous toutes indiquées comme optionnelles.

Points d'ordre général

Requis :
    – Le programme candidat doit être placé sous licence Libre.
Optionnel :
    – La licence doit être virale (type GNU GPL).

Lancement du programme

Requis :
    – Lancé sans paramètres, le programme démarre le mode interactif.
    – Avec le paramètre « --help » affiche un message d'aide et se termine.
Optionnel :
    – Lancé avec le paramètre « --verbose », le programme démarre en mode bavard.
    – Si "-c" suivi d'une commande clfb sont passés en paramètre, le programme exécute la commande et se termine.

Commandes internes

Requis :
    – « !help » affiche un message d'aide.
    – « !quit » termine le programme.
Optionnel :
    – « !verbose » bascule de l'état silencieux à l'état bavard et réciproquement.
    – Une auto-complétion permet de faciliter l'entrée de commandes.

Gestion de fichiers

Requis :
    – « fichier » ou « fichier 0 » ouvre le fichier avec le programme défini par défaut.
    – « fichier - » demande une confirmation avant de supprimer le fichier.
    – « fichier1 +> fichier2 » copie fichier1 vers fichier2.
    – « fichier1 -> fichier2 » déplace fichier 1 vers fichier2.
    – « fichier ? » affiche les méta-informations du fichier (droits d'accès, taille, date de dernière modif…) de la façon la plus lisible possible (ce qui sous-entend notamment mettre en valeur celui des trois jeux de droits qui s'applique à l'utilisateur en cours)
    – « fichier #motif » modifie les droits d'accès selon le motif indiqué (« u+r » ; « 744 » ; « rwxr--r-- »…)
        – « fichier ! » crée le fichier s'il n'existe pas⁽¹⁾, sinon affecte sa date de dernière validation (comme avec touch).
    – en cas d'écrasement de fichier déjà existant lors d'une opération quelconque, une confirmation est demandée.
Optionnel :
    – « fichier X » (avec X entier > 0) ouvre le fichier avec le Xème programme alternatif.
    – « fichier1 => fichier2 » crée un lien physique fichier2 pour fichier1.
    – « fichier1 <> fichier2 » crée un lien symbolique fichier2 pour fichier1.
    – pour les quatre opérations prenant un second nom de fichier fichier comme destination, on peut rajouter d'autres noms de fichiers à la suite, et le programme répétera alors l'opération autant de fois qu'il y a de fichiers cibles.
    – « fichier ?? » affiche la totalité des méta-informations, y compris celles spécifiques selon les types de fichiers (type de compression ; hauteur et largeur d'une image ; tags d'un fichier média…). Dans ce cas, l'affichage de « fichier ? » est attendu de façon plus simplifiée (seulement les méta-informations les plus utiles, comme la taille, et uniquement les droits d'accès s'appliquant à l'utilisateur en cours)

Spécificités pour les répertoires

Requis :
    – « . » ou « ./ » liste le contenu du répertoire courant, sans montrer les fichiers cachés.
    – « repertoire » se déplace vers le nouveau répertoire courant.
    – « repertoire . » affiche le contenu d'un répertoire, fichiers cachés y compris⁽²⁾.
    – « repertoire !! » crée le répertoire demandé si celui-ci n'existe pas encore.
    – « repertoire1 +> repertoire2 » exécute la copie en profondeur (copie du répertoire + copie des fichiers récursivement).
Optionnel :
    – par extension du comportement de « . », « repertoire » vérifie si le répertoire demandé est le répertoire courant, et liste son contenu dans ce cas.
    – « repertoire X » ouvre le répertoire avec le Xe programme externe par défaut.
    – les liens physiques sur les répertoires n'étant pas autorisés, « repertoire1 => repertoire2 » crée un nouveau répertoire et crée des liens physiques vers tous les fichiers contenus.

Candidats signalés : grim7reaper, Pylade, Kanor, helly.

⁽¹⁾ Attention à vérifier le nom de fichier dans la commande « fichier ! » corresponde bien à un nom de fichier possible. Notamment, un « / » désigne habituellement un répertoire : dans ce cas, charge au candidat de déterminer la meilleure action à effectuer (simple message d'erreur, assimilation à « repertoire !! », …)

⁽²⁾ Le comportement le plus probable de cette commande est d'afficher simplement le contenu sans se déplacer, cependant, ce point n'étant pas spécifié, le score final ne sera pas affecté si le candidat choisit plutôt d'en faire une combinaison « déplacement + affichage »)

Deux extensions supplémentaires ont été proposées, qui seront évaluées séparément (et pourront rapporter chacune un bonus de points indépendant du score du défi lui-même) :

Extension n°1 : gestion des ACL

Le candidat désirant implanter cette extension fera en sorte que son CLFB prenne en compte les ACL dans ses actions liées à la gestion des droits. Cela signifie que « fichier ? » doit afficher les ACL en priorité s'ils existent, que « fichier ?? » doit les afficher en plus du reste des détails, et que « fichier #droit » doit pouvoir les modifier, selon une syntaxe encore à déterminer.

Extension n°2 : gestion des archives

Le candidat désirant implanter cette extension fera en sorte que son CLFB soit capable de gérer les archives comme s'il s'agissait de répertoire. Cela signifie que la commande « archive » agira comme si elle prenait comme répertoire courant la racine de l'archive (ouvrir l'archive avec les programmes par défaut restant accessible via « archive X », que « archive . » doit lister son contenu, et qu'une tentative d'accéder à un fichier contenu dans l'archive (ouverture, modification de droits si cette opération est gérée, voire même récupération du nom par tabulation) doit réagir comme si le fichier était directement présent sur le disque.

Reste à estimer le nombre de points pour ce défi (version minimale (que les fonctionnalités requises) et version complète (avec toutes les fonctionnalités optionnelles inclues dans la spec de baser), ainsi que pour ses deux extensions.

Si quelqu'un a d'autres suggestions ou remarques à faire sur le défi, tous les commentaires sont les bienvenus.

Dernière modification par ArkSeth (Le 24/12/2010, à 16:54)


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#6 Le 17/12/2010, à 00:26

Revan26914

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Ouais, c'est ce qu'il disait, dans 90 % des cas c'est mal utilisé… mais ça n'est pas mauvais pour autant.

Pourquoi utiliser une fonction potentiellement dangereuse quand il y a mieux ?

Pylade a écrit :

Oui, ça fait plus « à la Rache », mais c'est tout.

Oui mais pourquoi programmer "à la Rache" quand on peut "bien" faire les choses ?

Au passage : http://www.manpagez.com/man/3/atoi/

grim7reaper a écrit :

bah si tu à un minimum de contrôle de type (il regarde si le format correspond à ta variable quand même).

oui un warning. Mais qu'est-ce qu'un warning quand tu compiles un grand projet ?

grim7reaper a écrit :

Et oui, scanf je peux m'en passer. Comme printf, comme for, comme if comme tout ce qui est de plus haut niveau que de l'assembleur RISC en fait (ouais, parce que même le CISC tu as des trucs dont tu peux aisement te passer).
Ce genre de remarque est relativement inutile…

Je ne vois pas le rapport ? Il y a mieux que scanf(3), alors pourquoi l'utiliser ? Si dans 90 % des cas elle est mal utilisée, je ne vois pas l'intéret de l'utiliser dans les 10% autres pourcent ou une fonction plus sure fait très bien l'affaire ...

Hors ligne

#7 Le 17/12/2010, à 00:26

Pylades

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

[…]
Ça se termine quand tes partiels (bon courage d'ailleurs) ?

Merci. C'est sur quatre jours s'étendant du 3 au 20 janvier.


ArkSeth, bien sûr que si, tu as eu des retours. Relis le fil précédent. tongue


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#8 Le 17/12/2010, à 00:27

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Pour atoi, c'est juste un peu plus « à la Rache » que d'utiliser strtol, mais je ne vois vraiment pas ce qui pourrait justifier une dépréciation…

Ben c'est simple: pour la gestion des erreurs. Pourquoi vouloir coder "a la Rache" comme tu dis alors qu'il y a moyen de produire du code propre sans se prendre plus la tête??

grim7reaper a écrit :

@Revan26914 : bah si tu à un minimum de contrôle de type (il regarde si le format correspond à ta variable quand même).

format '%f' expects type 'float *', but argument 2 has type 'int *'

Il suffit de savoir régler son compilo…
Et oui, scanf je peux m'en passer. Comme printf, comme for, comme if comme tout ce qui est de plus haut niveau que de l'assembleur RISC en fait (ouais, parce que même le CISC tu as des trucs dont tu peux aisement te passer).
Ce genre de remarque est relativement inutile…

Je ne vois pas en quoi cette remarque est inutile: scanf est une fonction dangereuse et elle est facilement remplaçable par des fonctions comme fgets donc... pourquoi l'utiliser?


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

Hors ligne

#9 Le 17/12/2010, à 00:32

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Revan26914 a écrit :

Merci, je n'étais pas au courant.


Revan26914 a écrit :

[…]
Je ne vois pas le rapport ? Il y a mieux que scanf(3), alors pourquoi l'utiliser ? Si dans 90 % des cas elle est mal utilisée, je ne vois pas l'intéret de l'utiliser dans les 10% autres pourcent ou une fonction plus sure fait très bien l'affaire ...

Laquelle ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#10 Le 17/12/2010, à 00:40

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Revan26914 a écrit :

oui un warning. Mais qu'est-ce qu'un warning quand tu compiles un grand projet ?

-Wall -pedantic, et s'il y a un warning, tu vas voir et tu corriges. La taille du projet n'empêche pas les codes propres.
(À l'exception de deux warning « machin declared but not used » générés par flex dont je n'arrive pas à me débarrasser, 99% des warnings que j'ai rencontré dans ce que j'ai codé en C jusque là dans ma « carrière » sont des « assignment makes pointer from integer without a cast » et autres trucs de ce style qui vont quasi-systématiquement causer une segfault à l'exécution, donc quand tu as un warning, tu t'inquiètes)

Pylade a écrit :

ArkSeth, bien sûr que si, tu as eu des retours. Relis le fil précédent. tongue

Boolean found, pointer needed.

Dernière modification par ArkSeth (Le 17/12/2010, à 00:44)


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#11 Le 17/12/2010, à 00:42

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

@ArkSeth : Pour le (1), je « vote » pour -c
Pour le (2), je trouvais le '.' foireux, mais après relecture de la spec' ça colle bien.
Pour le '/', si on accepte un signe tel que le '.' alors autant accepter '/' combiné avec le '!' (sauf si quelqu'un propose une meilleur idée).


Revan26914 a écrit :

Pourquoi utiliser une fonction potentiellement dangereuse quand il y a mieux ?

Comment pourrait t'il y avoir mieux alors qu'il n'y a même pas d'équivalent.
Donne moi une façon simple de remplacer ça

fscanf(file, "%8d%8d%100[^\n]", &news->debut, &news->fin, news->msg);

?
Et encore, l'argument de la dangerosité ne tient pas des masses.
Dans ce cas, faut arrêter le C car on doit gérer la mémoire à la main (l'humain est faillible, risque de memory leak) et il n'y a pas de contrôle des indices (buffer overflow, FEAR !!).

Oui mais pourquoi programmer "à la Rache" quand on peut "bien" faire les choses ?

Ce n'est pas mal faire les choses que d'utiliser une fonction dont la sémantique correspond à la tâche à effectuée.
Je préfère ça que d'utiliser truc « plus simple » mais donc la sémantique est incorrecte.

oui un warning. Mais qu'est-ce qu'un warning quand tu compiles un grand projet ?

Un warning EST une erreur en ce qui me concerne (surtout dans mon code, quand ça vient d'une lib externe c'est plus complexe). La taille du projet n'a absolument rien à voir là-dedans.

Je ne vois pas le rapport ? Il y a mieux que scanf(3), alors pourquoi l'utiliser ? Si dans 90 % des cas elle est mal utilisée, je ne vois pas l'intéret de l'utiliser dans les 10% autres pourcent ou une fonction plus sure fait très bien l'affaire ...

Cf. ma remarque du dessus en ce qui concerne le « il y a mieux ».
Ce n'est pas parce des gens ne savent pas coder que je vais me priver d'une fonction fort pratique quand la sémantique et le bon sens me demande de l'utiliser.


Rolinh a écrit :

scanf est une fonction dangereuse

Pas plus que le langage en lui-même.

elle est facilement remplaçable par des fonctions comme fgets donc... pourquoi l'utiliser?

Équivalent fgets de ça, stp

fscanf(file, "%8d%8d%100[^\n]", &news->debut, &news->fin, news->msg);

debut et fin sont des entiers, msg est un buffer de 101 cases.


Édit : on parle de fscanf (ArkSeth bosse sur un fichier) donc j'ai édité mon code en conséquence.

Dernière modification par grim7reaper (Le 17/12/2010, à 00:51)

Hors ligne

#12 Le 17/12/2010, à 00:44

Revan26914

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Merci, je n'étais pas au courant.

De rien ;-)

Pylade a écrit :

Revan26914 a écrit :

[…]
Je ne vois pas le rapport ? Il y a mieux que scanf(3), alors pourquoi l'utiliser ? Si dans 90 % des cas elle est mal utilisée, je ne vois pas l'intéret de l'utiliser dans les 10% autres pourcent ou une fonction plus sure fait très bien l'affaire ...

Laquelle ?

fgets(3) par exemple.

ça t'évite pas mal d'embêtements que tu aurais avec la fonction scanf(3), comme des tas de checks ou comme les Format string attack (en anglais).

Hors ligne

#13 Le 17/12/2010, à 00:45

na kraïou

Re : /* Topic des codeurs couche-tard [3] */

yikes


Triste !
Intégriste ! Comploteur ! Connard ! Fourbe ! Linuxeux ! Machiavélique ! Moche ! Branleur ! Grognon ! Prétentieux ! Frimeur ! /b/tard ! Futile ! Étudiant ! Médiéviste ! Perfide ! Debianeux ! Futur maître du monde ! Petit (quasi nanos gigantium humeris insidentes) ! Égoïste ! Nawakiste ! Mauvaise langue ! 34709 ! На краю ! Arrogant ! Suffisant ! Ingrat !

En ligne

#14 Le 17/12/2010, à 00:45

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Revan26914 a écrit :

ça t'évite pas mal d'embêtements que tu aurais avec la fonction scanf(3), comme des tas de checks ou comme les Format string attack (en anglais).

http://en.wikipedia.org/wiki/Format_string_attack a écrit :

Format string bugs most commonly appear when a programmer wishes to print a string containing user supplied data. The programmer may mistakenly write printf(buffer) instead of printf("%s", buffer).

Youhou, un exemple de ce que je disais : des gens qui ne savent pas coder et violent allégrement la sémantique d'une fonction…

Dernière modification par grim7reaper (Le 17/12/2010, à 00:48)

Hors ligne

#15 Le 17/12/2010, à 00:51

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

@ArkSeth : Pour le (1), je « vote » pour -c

Étant donné que c'est toi qui avais suggéré -e à la base, je pense qu'on peut valider -c.

Pour le répertoire, on peut peut-être dire que que ce soit « nom/ ! », « nom /! » ou même « nom !/ » ou « nom ! / », à partir du moment où il y a / quelque part sur la ligne, ça veut dire création de répertoire… à voir, encore.

Sinon, pour l'histoire du scanf, disons (sans vouloir vexer personne) qu'avec des arguments comme celui de Revan26914, on arrive à rejeter totalement l'utilisation de JavaScript à cause de la page des hamsters.
Pourtant, le fait que pas mal de « développeurs web » ne sachent pas s'en servir n'empêchent rien au fait que JavaScript, bien utilisé, peut être un plus immense pour un site web.

(Ceci dit, si je voulais être méchant, je dirais que les arguments de Revan26914 contre scanf sont grosso-modo du même ordre que ceux de Pylade, grim7reaper ou helly contre Java ou PHP tongue)


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#16 Le 17/12/2010, à 00:54

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

Pour le répertoire, on peut peut-être dire que que ce soit « nom/ ! », « nom /! » ou même « nom !/ » ou « nom ! / », à partir du moment où il y a / quelque part sur la ligne, ça veut dire création de répertoire… à voir, encore.

Perso, j'étais parti sur

dir/ !

Car ça garde une certaine symétrie avec le touch

file !

Faut voir ce que les autres en pense.

(Ceci dit, si je voulais être méchant, je dirais que les arguments de Revan26914 contre scanf sont grosso-modo du même ordre que ceux de Pylade, grim7reaper ou helly contre Java ou PHP tongue)

Mais heu, j'ai jamais critiqué PHP moi ^_^.
Bon pour Java, je plaide coupable : j'en rajoute une couche pour troller (comme quand je critique Python) tongue

Dernière modification par grim7reaper (Le 17/12/2010, à 00:56)

Hors ligne

#17 Le 17/12/2010, à 01:04

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Bah sinon, une autre raison pour laquelle java, saybien, c'est que Dieu code en Java tongue

(Un de mes profs de L3, que je n'ai plus cette année, mais à qui mon prof d'architecture logicielle de cette année demande conseil quand lui-même a un doute. Son cours est juste une Bible (d'où ce surnom vaseux ^^) en ce qui concerne la façon doit faire du code propre, bien spécifié et bien structuré. C'est à peu près le seul prof d'info contre lequel je n'imaginerais même pas troller)

Dernière modification par ArkSeth (Le 17/12/2010, à 01:05)


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#18 Le 17/12/2010, à 01:04

na kraïou

Re : /* Topic des codeurs couche-tard [3] */

(topic déplacé)


Triste !
Intégriste ! Comploteur ! Connard ! Fourbe ! Linuxeux ! Machiavélique ! Moche ! Branleur ! Grognon ! Prétentieux ! Frimeur ! /b/tard ! Futile ! Étudiant ! Médiéviste ! Perfide ! Debianeux ! Futur maître du monde ! Petit (quasi nanos gigantium humeris insidentes) ! Égoïste ! Nawakiste ! Mauvaise langue ! 34709 ! На краю ! Arrogant ! Suffisant ! Ingrat !

En ligne

#19 Le 17/12/2010, à 01:07

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Je n'ai pas vraiment compris ce que tu cherchais à faire m'enfin bon, si le prétexte c'est juste d'économiser une ligne de code bon... hmm

Bref, on dirait que chacun est prêt à camper sur ses positions... Donc je vais arrêter de débattre là pour ma part.


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

Hors ligne

#20 Le 17/12/2010, à 01:07

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

Bah sinon, une autre raison pour laquelle java, saybien, c'est que Dieu code en Java tongue

Non, en Perl (en plus tu l'avais posté).

@Р☢w ! ✰ mad ✰ (эй !)  : merci

Hors ligne

#21 Le 17/12/2010, à 01:09

Elzen

Re : /* Topic des codeurs couche-tard [3] */

On parle pas du même dieu tongue

(Un bon libriste est polythéiste, après tout, non ?)


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#22 Le 17/12/2010, à 01:10

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

Je n'ai pas vraiment compris ce que tu cherchais à faire m'enfin bon, si le prétexte c'est juste d'économiser une ligne de code bon... hmm

Je cherche à lire 2 dates au format AAAAMMJJ adjacentes + une chaîne de 100 caractères (vu que mon buffer en fait 101).
Je ne cherche pas à économiser une ligne de code, j'utilise de manière sûre (à moins que tu ne me démontre le contraire dans mon exemple, j'ai pu rater quelque chose car je suis loin d'être infaillible) une fonction sémantiquement adaptée.


@ArkSeth : oui, en terme d'informatique j'ai effectivement plusieurs « Dieu » ^_^

Dernière modification par grim7reaper (Le 17/12/2010, à 01:12)

Hors ligne

#23 Le 17/12/2010, à 01:22

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Р☢w ! a écrit :

(topic déplacé)

Merci !

Dernière modification par Pylade (Le 17/12/2010, à 01:23)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#24 Le 17/12/2010, à 01:25

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Je cherche à lire 2 dates au format AAAAMMJJ adjacentes + une chaîne de 100 caractères (vu que mon buffer en fait 101).

Ben dans ce cas, tu parses à la main puisqu'il faut de toute manière que tu vérifies que le format de la date soit valide...


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

Hors ligne

#25 Le 17/12/2010, à 01:30

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Oui, je suis d'accord mais je ne vois pas le rapport. On parle de scanf là, donc de lecture.
Bien sûr qu'après je parse, bien que parser soit un grand mot pour le traitement qui est fait ici ^_^. Si on parle de parsing alors ni scanf ni fgets n'ont voix au chapitre.
J'ai pour principe de faire une chose à la fois, la lecture et la vérification de validité étant deux choses différentes je les traites séparement (bien qu'un premier filtrage soit ici appliqué par scanf)

Donc en terme de lecture que me proposes tu ?
En quoi scanf est-il dangereux ici ?

Dernière modification par grim7reaper (Le 17/12/2010, à 01:34)

Hors ligne

Haut de page ↑