Tout ce qui a été posté par foetus
-
Le Bar de la programmation
Code en mode arrache pour tester #include <stdio.h>#include <stdlib.h>#include <string.h>#include <regex.h>int main (void) { regex_t preg; const char* str_request = "11/22/33"; const char* str_regex = "^([0123456789]+/){2}([0123456789]+)$";// const char* str_regex = "^([0123456789]+/)([0123456789]+/)([0123456789]+)$"; int err = regcomp(&preg, str_regex, REG_EXTENDED); if (err == 0) { regmatch_t* pmatch = NULL; size_t nmatch = preg.re_nsub; printf("main: find %d part%c\n", nmatch, ((nmatch > 1)? 's': ' ')); pmatch = malloc(sizeof(*pmatch) * nmatch); if (pmatch) { int part = 0; int match = regexec(&preg, str_request, nmatch, pmatch, 0); regfree (&preg); if (match == 0) { for(part = 0; part < nmatch; part++) { if (pmatch[part].rm_so == (size_t) -1) { break; /* No more groups */ } char str_part[strlen(str_request) + 1]; strcpy(str_part, str_request); str_part[pmatch[part].rm_eo] = 0; printf("main: Group %u: [%2u-%2u]: %s\n", part, pmatch[part].rm_so, pmatch[part].rm_eo, (str_part + pmatch[part].rm_so)); } } else if (match == REG_NOMATCH) { printf("main: %s n\'est pas une expression valide\n", str_request); } else { size_t size = regerror(err, &preg, NULL, 0); char* text = malloc(sizeof(*text) * size); if (text) { regerror(err, &preg, text, size); printf("main - Erreur 1: %s\n", text); free(text); } else { printf("main - Erreur 2: Memoire insuffisante\n"); exit(EXIT_FAILURE); } } } else { printf("main - Erreur 3: Memoire insuffisante\n"); exit(EXIT_FAILURE); } } else { printf("main: regcomp NULL\n"); } return(EXIT_SUCCESS);}
-
Le Bar de la programmation
J'ai regardé le truc et apparemment l'implémentation n'est pas totalement complète (à vérifier): donc il faut oublier Sinon le "?:" sert à quoi En faisant le truc avec le regexp standard: 1) Avec "^([0123456789]+/){2}([0123456789]+)$", il trouve 2 parties 2) Avec "^([0123456789]+/)([0123456789]+/)([0123456789]+)$", il trouve 3 parties C'est le quantificateur borné personnalisé qui semble tout prendre
-
Le Bar de la programmation
strtok /* strtok example */#include <stdio.h>#include <string.h>int main() { char str[] = "11/22/33"; printf("Splitting string \"%s\" into tokens:\n", str); char* pch = strtok(str, "/"); while(pch != NULL) { printf("%s\n", pch); pch = strtok(NULL, "/"); } return 0;}
-
Le Bar de la programmation
gcc -D _POSIX_C_SOURCE
-
Le Bar de la programmation
Donc ouais, le compilateur/ linker ne les voit pas parce qu'elles sont dans le kernel, la libriaire système [whatever] et non pas dans une librairie .h .def .o .lib .dll [whatever]
-
Votre Dernier Achat
Il s'en fiche, c'est un descendant de Sethaniel "Seth" Brundle et d'un caméléon
-
Votre Dernier Achat
Vous Hair Trimmer avec vos blagues
-
Votre Dernier Achat
C'est sûr pour un chaton comme toi, il ne faut pas déactiver l'électronique
-
Votre Dernier Achat
Les Galleries Lafayette ont un magasin spécial maison avec de la cuisine, chambre, décoration, etc.., juste en face des Galleries Lafayette/ Printemps
-
Votre Dernier Achat
Oui mais c'est 5% sur une heure. Ce qui fait entre 7 et 30 €uros d'EDF en plus par an. Ce qui confirme le dossier Clubic Sans compter le fameux amortissement du prix initial
-
Vous écoutez quoi comme zik là
http://www.youtube.com/watch?v=G2zn32n7tU0
-
Votre Dernier Achat
Faudrait en parler à Microsoft pour la Xbox One Ouais ma vanne aurait été plus efficace avec la XBox One, c'est sûr... mais bon, on va dire que la PS4 est un magnétoscope penché Bah vu que la PS4 ne peux pas enregistrer un flux externe, c'est même pas un magnéto. Un minitel encore ça passe... Mais quel minitel Édit: c'était pour les quotes, non pas pour le(s) message(s). Allez quoter moi
-
Votre Dernier Achat
Pour clore le débat, tu me l'envoies: je te payes les 15 €uros de fdp
-
Votre Dernier Achat
Le thermostat est juste magnifique J'adore... Je need (bon me faudrait la maison avant ) Si tu dors dans une voiture, le produit peut-être utile
-
Vous écoutez quoi comme zik là
- (-@ L'Apple Bar @-)
Si j'ai bien compris le truc () c'est HFS+ qui gère 2 flux: 1 de données et 1 de metadata. Mais c'est le seul à le faire. Donc, lorsque tu écris de HFS+ vers le reste du monde, il sait écrire le flux données (ce sont les fichiers) Mais le flux de metadata lui reste sur les bras: ce sont ces fichiers "Apple Double files" Même XCode a des règles pour les ignorer- Votre Dernier Achat
Le Cointreau ou un Grand Marnier c'est pour la cuisine, et notamment les crêpes (à moins que je dise une grosse bêtise )- Votre Dernier Achat
Ah un brin d'espoir: un simple pantalon coton, lavable simplement, de couleur noire (très foncée) Et non Burton, made in china (je le pense), 45-55 €uros en promo Pour l'instant il n'y a que chez American Apparel qu'il y a des frocs coton - (attention à la coupe et aux couleurs ) à 30-37 €uros en promo, made in U.S.A. Mais pas dans leurs magasins parisiens (j'en ai fait 2) Je ne sais pas quels vêtements tu as acheté mais cela fait peur C'est Made in China? au Made in Pays Pauvres? C'est cher? Entre le col du chandail et sa double fermeture à boutons; c'est pratique? tu n'as pas l'air bête? Le chandail a gros "tissu" et à motifs pour faire vieux chandail (©. Fight Club ) La veste avec des épaules très très carrées: Tu es gaulé comment? Il y a des épaulettes (80's forever)? Tu peux bouger les bras? Ou tu as l'air d'avoir un manche à balai dans le derche? Une bonne veste moderne: avec les poche inaccessible sur le cœur et coupée au ras de la ceinture Si tu lèves les bras est-ce qu'on voit le bide? Et le col de la veste a l'air chiant car très haut Et le "truc" qui dépasse du froc: c'est la chemise? Au moins tu ne va pas avoir froid. C'est quoi la matière? Un truc moderne hyper léger?- Vous écoutez quoi comme zik là
You can go back to School- Vous écoutez quoi comme zik là
Mon déjeuner avec Coffeebreak peut attendre ou http://www.youtube.com/watch?v=GHbyNrGXpAA- Le Bar de la programmation
Autant pour moi: C'est dans le else, parce que je mets des return dans des if (même beaucoup ) C'est parce que je suis assez strict: Après on peut me le reprocher Pour moi une fonction/ méthode doit avoir cette approche là: XXXX toto (....) {// Postconditionif ( someCondition1 ) return YYY;// Even more postconditionsif ( someCondition2 ) return ZZZ;....if ( someConditionN ) return UUU;// All logic here.....// Final returnreturn VVV;} Cela facilite la lecture, la maintenance (<- pincettes). Avis personnel: il faut éviter d'avoir des return sauvages. Ici, la fonction fait 3 lignes. Mais lorsque ta fonction/ méthode fait 25-30 lignes, il ne faut pas louper un return (surtout lors de la lecture du corps de la méthode/ fonction) Sinon surprise Niveau compilateur: peut être un rien en plus, mais je ne pense pas Pour revenir à la fonction "fautive", c'est parce qu'elle ne fait pas grand chose. Donc elle reste lisible (et le débat peut être long ) Déjà on peut la modifier avec mon approche. Mais cela ne change rien. Le plus gros changement, serait de mettre un return avec un test ternaire ((condition)? (true): (false)); En C, je ferai un #define parce qu'il n'y a pas d'allocations De façon extrême ( ), compter son occurrence dans le code et en fonction du nombre soit la supprimer la hardcoder trouver son équivalent. Parce que si je comprends bien le développeur a fait un "module" avec des fonctions plus ou moins officieuses qui lui manquait- Votre Dernier Achat
c'est un plafonnier- Votre Dernier Achat
J'avais lu quelque part que les japonnais avait des machine à laver sans eau Sinon une avec un hublot cela va te muscler les cuisses et le bas du dos ... ou pire- Le Linux BAR - Discussion de tout et de rien
La libcaca c'est justement son but- Le Linux BAR - Discussion de tout et de rien
Ouais il y a un dossier spécifique pour cela. Tu mets ton script dedans et au démarrage il est lancé: magique - (-@ L'Apple Bar @-)