Je suis parti sur http://man.developpez.com/ et j'ai cherché longtemps (j'ai donc trouvé chdir et getcwd mais j'ai pas compris la condition, si quelqu'un pouvait m'aider sur ce coup là)
Je suis parti sur http://man.developpez.com/ et j'ai cherché longtemps (j'ai donc trouvé chdir et getcwd mais j'ai pas compris la condition, si quelqu'un pouvait m'aider sur ce coup là)
Ca fait un bay que je le sais mais vous comparez quatres chaines et la condition est illogique :La fonction strcmp() compare les deux chaînes s1 et s2. Elle renvoie un entier négatif, nul, ou positif, si s1 est respectivement inférieure, égale ou supérieure à s2.
si (strcmp(str1 == "truc") ET strcmp(str2 == "truc2")) alors![]()
se traduit en français par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (strcmp(file->d_name, ".") && strcmp(file->d_name, ".."))
si la chaîne file->d_name est différente de "." et de ".."
Donc il n'y a rien d'illogique.
"." et ".." représentant respectivement le répertoire courant et le répertoire parent. On ne désire simplement pas afficher ces répertoire, d'où le test.
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Je crois qu'il est bon de rappeler que si l'expression testee par un if s'evalue a 0, le test est faux, tandis que le test est vrai pour toutes les autres valeurs.
d'où l'intérêt des tests explicites:
Thierry
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (strcmp(file->d_name, ".") != 0 && strcmp(file->d_name, "..") != 0) { /* ... */ }
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Hé hé !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #define STRINGS_ARE_EQUAL 0 if (strcmp(file->d_name, ".") != STRINGS_ARE_EQUAL && strcmp(file->d_name, "..") != STRINGS_ARE_EQUAL) { /* ... */ }
La force de l'abstraction...
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Emmanuel, je te tire mon chapeau pour cette macro simple qui chasse les doutes de l'esprit.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci Emmanuel, grâce à cette macro, tout deviens plus clair![]()
Partager