#101 Le 14/04/2010, à 22:34
- cm-t
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
@helly : non, 9 car on compte l'espace
yes plop
8
Et bonus pour flood de plop
aha, bien joué, j'avais pas penser a si simple
mais peut-être il y a encore plus simple qui sait ?
Actu Ubuntu ☺/
Pauses Ubuntu sur Paris \_< -t
[(π)] La Quadrature du net
Hors ligne
#102 Le 14/04/2010, à 22:36
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Possible, je suis plutôt noob en bash (mais je me soigne quand j'ai le temps)
Sinon, j'ai une version de plop en C obfusqué (je pense que je dois pouvoir faire pire encore, mais faut que je me repenche dessus un de ces quatre) fait maison (Pylade la connaît )
Édit : Youhou, GCC 4.5 est sorti, enjoy \o\ \o| \o/ |o/ /o/
@Pylade (pour les goto, après je ne sais pas si tu as cette habitude)
Vous avez la mauvaise habitude de faire des goto en C sans penser à initialiser vos variables ? GCC 4.5 a pensé à vous et l'utilisation de l'option -Wjump-misses-init générera désormais un avertissement si vous persistez dans vos exécrables pratiques. Bien entendu, et comme son nom l'indique, il suffira d'utiliser le très sévère -Wall pour profiter de cette surveillance renforcée.
Dernière modification par grim7reaper (Le 14/04/2010, à 22:54)
Hors ligne
#103 Le 14/04/2010, à 22:43
- helly
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
On compte que les caractères imprimables?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#104 Le 14/04/2010, à 22:49
- Grünt
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
./a
plop
Red flashing lights. I bet they mean something.
Hors ligne
#105 Le 14/04/2010, à 22:52
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Oui, mais tu as tapé plus de caractères pour écrire ton script/exécutable "a" donc ça ne fonctionne pas
Dernière modification par grim7reaper (Le 14/04/2010, à 22:57)
Hors ligne
#106 Le 14/04/2010, à 23:00
- PPdM
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
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).
Que le meilleur gagne
Dis moi j'attends toujours mon chèque de droit d'auteur
Bonjour !:D
Coup de gueule du matin
Les codeurs fous, pourquoi vous ne faites pas un Topic des Codeurs Couche-Tard ?
Parce-que en ce moment le TdCT est imbuvable !:mad:
La critique est facile, mais l'art est difficile !
L'humanité étant ce qu'elle est, la liberté ne sera jamais un acquit, mais toujours un droit à défendre !
Pour résoudre un problème commence par poser les bonnes questions, la bonne solution en découlera
Hors ligne
#107 Le 14/04/2010, à 23:01
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
5 pages le premiers jours, bon rythme (on voit que l'on se retenait sur le tdct )
Hors ligne
#108 Le 14/04/2010, à 23:02
- cm-t
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
5 pages le premiers jours, bon rythme (on voit que l'on se retenait sur le tdct )
yes
Actu Ubuntu ☺/
Pauses Ubuntu sur Paris \_< -t
[(π)] La Quadrature du net
Hors ligne
#109 Le 14/04/2010, à 23:02
- helly
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Et voila pépé en viens à se quoter lui même, c'est le début de la fin pour lui
/me est contente ,je viens de me rappeller que j'avais acheté un bouquin sur le c++ :
"le guide de survie du c++
vincent gouvernelle"
ça vous dit quelquechose?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#110 Le 14/04/2010, à 23:05
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
22 post sur 114, je représente presque 20% (19,3%) des messages sur ce topic \o/ (et en nombre de ligne, vu mon bonus de +5 en ponte de pavé c'est sûrement bien plus )
@helly : non, je ne connais pas, mais je ne connais pas des masses de livres non plus (après, comme je l'ai dis, le seul ouvrage français reconnu à l'unanimité c'est le Stroustrup).
Sinon, pour chercher un livre sur un sujet en info, développez.com à des rubriques où des livres sont conseillés et parfois des critiques sont disponibles.
Dernière modification par grim7reaper (Le 14/04/2010, à 23:09)
Hors ligne
#111 Le 14/04/2010, à 23:11
- samυncle
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Dis moi j'attends toujours mon chèque de droit d'auteur
\o/ amis
Hello world
Hors ligne
#112 Le 14/04/2010, à 23:13
- grim7reaper
Hors ligne
#113 Le 14/04/2010, à 23:16
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Il faut différencier :
- const char* (ou char const *) => pointeur variable sur une chaîne constante
- char *const => pointeur constant sur une chaîne variable
- const char *const => pointeur constant sur une chaîne constanteSi tu veux modifier la chaîne pointée oublie l'affectation "=" avec les chaînes littérales et fais du strcpy. Si tu veux juste modifier le pointeur (et pas la chaîne pointée) dans ce cas modifie tes "char *" en "char const *".
Ouh, c’est très subtil, et confus pour moi en ce moment. J’ai encore des progrès à faire.
Donc j’ai déclaré toutes mes chaînes avec const char*, et tous mes tableaux de chaînes avec const char**, et j’ai utilisé des = partout, mais je me prends quand-même un SIGSEGV dans la tronche. Là, je n’ai pas le courage de pousser plus loin mes investigations.
Voilà la tronche de mes fichiers pour la route.
libopt.c
#include "libopt.h"
#include <stdio.h> //debug
int atropt(int argc,const char** argv,struct opt** optv,struct retr* ret)
{
short i=0;
struct opt* next=NULL;
short argn;
for(argn=1;argn<argc;argn++)
{
short s_flag=0;
if(argv[argn][0]=='-')
{
if(argv[argn][1]=='\0')
{
ret->argsv[i++]="-";
continue;
}
if(argv[argn][1]!='-')
{
while(argv[argn][++s_flag]!='\0')
{
short optn;
for(optn=0;optv[optn]!=NULL;optn++)
{
short shn;
for(shn=0;optv[optn]->short_unact[shn]!='\0';shn++)
{
printf("unact: %c\n",optv[optn]->short_act[shn]); //debug
putc(argv[argn][s_flag],stdout); //debug
putc('\n',stdout); //debug
if(optv[optn]->short_unact[shn]==argv[argn][s_flag])
optv[optn]->active=0;
}
for(shn=0;optv[optn]->short_act[shn]!='\0';shn++)
{
printf("act: %c\n",optv[optn]->short_act[shn]); //debug
putc(argv[argn][s_flag],stdout); //debug
putc('\n',stdout); //debug
if(optv[optn]->short_act[shn]==argv[argn][s_flag])
{
optv[optn]->active=1;
if(optv[optn]->takes_value==1)
next=optv[optn];
}
}
}
}
}
else
{
// options longues on continue !
}
}
else
{
if(next!=NULL)
{
next->value=argv[argn];
next=NULL;
}
else
ret->argsv[i++]=argv[argn];
}
}
ret->argsv[i]=NULL;
ret->argsc=i;
return EXIT_SUCCESS;
}
libopt.h
#ifndef LIBOPT_H_INCLUDED
#define LIBOPT_H_INCLUDED
#include <stdlib.h>
#include <string.h>
struct opt
{
char active;
const char* short_act;
const char** long_act;
const char* short_unact;
const char** long_unact;
char takes_value;
const char* value;
};
struct retr
{
int argsc;
const char** argsv;
const char** errs;
};
int atropt(int,const char**,struct opt**,struct retr*);
#endif // LIBOPT_H_INCLUDED
debug.c
#include <stdio.h>
#include <stdlib.h>
#include "../staticlibopt/libopt.h"
int main(int argc,const char** argv)
{
printf("Hello world!\n");
struct opt opt1;
opt1.active=0;
opt1.short_act="d";
opt1.short_unact="";
opt1.takes_value=0;
struct opt opt2;
opt2.active=0;
opt2.short_act="fi";
opt2.short_unact="";
opt2.takes_value=0;
struct opt* optv[3];
optv[0]=&opt1;
optv[1]=&opt2;
optv[2]=NULL;
struct retr ret1;
atropt(argc,argv,optv,&ret1);
if(opt1.active)
puts("opt1 active!");
if(opt2.active)
puts("opt2 active!");
return 0;
}
Je crois que je vais faire une fonction qui initialise la structure. C’est en effet une bonne idée. J’aurais aimé la créer, mais si je demande un pointeur sur struct opt en argument, que je crée et j’initialise la structure dans ma fonction et que j’affecte ensuite le pointeur passé, ça va chier car la structure ne sera définie que dans la fonction de création, non ? Donc même si c’est une fonction de création qui serait la plus adaptée à un utilisateur con, je ne vois pas comment faire…
Au passage :
int main(int, const char**);
c’est un prototype de main correct, ou argv ne doit pas être const char** ?
Merci pour tout le temps que tu as passé à m’aider.
“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
#114 Le 14/04/2010, à 23:28
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
peut-on plopper en tapant moins de caractère que ca ?
yes|sed s/y/plop/g
18 caractères ici
ca fait une bonne 1ère enigme non?
edit: des point pour les Hdp ?
Déjà ton g est inutile.
5 pages le premiers jours, bon rythme (on voit que l'on se retenait sur le tdct )
Et encore, la journée n’est pas finie…
Sinon, j’ai oublié de dire que gpm roxe.
“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
#115 Le 14/04/2010, à 23:56
- Ph3nix_
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
goto "sleep"
Hiroshima 45 / Chernobyl 86 / Windows '95
Hors ligne
#116 Le 14/04/2010, à 23:57
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Édit : à toutes fins utiles voici ma ligne de compilation traditionnel (et pas parano) pour une compil en mode debug
gcc -g -ansi -pedantic -Wall -Wextra -O0 -Wwrite-strings -Wstrict-prototypes -Wunreachable-code
-Wstrict-prototypes est peut-être superlfu (activé par -pedantic ? -ansi ? -Wall ? -Wextra ?).
J’ai fait comme ça, à l’exception de -ansi dont je ne comprends pas l’intérêt, et de -O0 (je n’optimise pas par défaut, mais je comprends que cela constitue une sécurité). Et bien, ça oblige à faire preuve de beaucoup de rigueur, ça…
“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
#117 Le 15/04/2010, à 00:02
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Bon… On est obligé de ploper du code pour marquer des points ?
Dans ce cas…
echo 'BN all' && sudo halt
“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
#118 Le 15/04/2010, à 00:03
- helly
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
#!/bin/bash
sleep 3600*9
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#119 Le 15/04/2010, à 00:07
- nesthib
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
#!/bin/bash sleep $((3600*9))
fixed…
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#120 Le 15/04/2010, à 02:06
- samυncle
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Hello world
Hors ligne
#121 Le 15/04/2010, à 02:11
- Grünt
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Red flashing lights. I bet they mean something.
Hors ligne
#122 Le 15/04/2010, à 02:17
- samυncle
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Hello world
Hors ligne
#123 Le 15/04/2010, à 07:23
- bloublou
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Ah ben enfin un topic débile où j'vais pouvoir trainer.
Hors ligne
#124 Le 15/04/2010, à 08:02
- tshirtman
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
helly a écrit :#!/bin/bash sleep 9h
fixed…
fixed
grim7reaper a écrit :Il faut différencier :
- const char* (ou char const *) => pointeur variable sur une chaîne constante
- char *const => pointeur constant sur une chaîne variable
- const char *const => pointeur constant sur une chaîne constanteSi tu veux modifier la chaîne pointée oublie l'affectation "=" avec les chaînes littérales et fais du strcpy. Si tu veux juste modifier le pointeur (et pas la chaîne pointée) dans ce cas modifie tes "char *" en "char const *".
Ouh, c’est très subtil, et confus pour moi en ce moment. J’ai encore des progrès à faire.
non, cee n'est pas de ta faute, c'est le language qui essaye de donner un sens à tout et n'importe quoi, en voulant concilier des approches haut niveau avec des concepts bas niveaux, et est de ce fait, trop complexe à utiliser… mon conseil est bien de changer de langage, pas de cerveau.
edit: ah non ça c'est pareil en C qu'en C++ donc oui c'est complexe et inhérent au langage, mais ce genre de trucs est moins perturbant en C qu'en C++.
Dernière modification par tshirtman (Le 15/04/2010, à 08:09)
Hors ligne
#125 Le 15/04/2010, à 08:08
- nesthib
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
nesthib a écrit :helly a écrit :#!/bin/bash sleep 9h
fixed…
fixed
bien sûr mais tu perds la vertu pédagogique là… faut leur apprendre à faire des opérations en bash à ces p'tits jeunes !
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne