Je suis une nouvelle recrue des modérateurs du site, et je suis chargé de surveiller la section « programmation » des forums, et notamment le forum de C. Je vous propose ici de faire vivre à nouveau la FAQ de ce forum !
J'ouvre donc ce topic afin que nous puissions en discuter sans la polluer. C'est ici que nous proposerons les nouvelles questions/réponses ou que signalerons les erreurs qu'elle peut comporter. Si, au bout de plusieurs jours, aucune réponse de moi ou Kevin Leonhart ne parvient à votre suggestion, vous pouvez m'envoyer un MP.
En outre, je vous encourage à rediriger gentiment les nouveaux vers cette FAQ s'ils posent une question à laquelle elle répond. Je vous invite également à signaler ici toute question non-référencée qui revient souvent sur les forums. Le post-it est là pour vous éviter de toujours répéter les mêmes choses !
Notez cependant que je ne m'occupe pas [encore] de la FAQ sur les bibliothèques tièrces.
EDIT : Ce qui suit était une proposition de refonte, qui a depuis été réalisée. Ce topic reste néanmoins ouvert pour toutes vos propositions, suggestions au sujet de la FAQ.
***
Pour marquer le coup, je propose de faire des travaux de rénovation dans ce topic. Sur une idée de Kevin Leonhart, nous pourrions réorganiser les catégories, qui sont pour le moment un peut déséquilibrées. Je songe aussi à effacer tous les messages qui ne sont pas des questions/réponses, avec l'accord de leurs auteurs. Si ceux-ci passent par là, merci de me donner votre avis.
Voici donc les catégories que je propose, et les questions/réponses existantes réorganisées à l'intérieur. Les questions en bleu sont celles je vous propose de rajouter, alors que celles en rouge sont celles que je vous propose de supprimer/fusionner avec une autre.
Printf et scanf
Pourquoi ``scanf'' est mal ?
Pourquoi ``fflush'' ne doit pas être utilisé sur ``stdin'' ?
Comment enlever les restes de scanf ?
Comment récupérer des entiers avec "scanf"/"printf" ? des flottants ?
Quand je fais un scanf pour récupérer un nombre, si l'utilisateur tape une lettre, j'ai plein de problèmes. Que faire ?
Comment peut-on lire une chaîne de caractères contenant des blancs (espaces, tabulations, etc.) ?
Quels sont les différentes séquences d'échappement avec printf et quels sont les différents formats à utiliser avec printf et scanf ?
La console
Pourquoi ne pas utiliser system("pause") ?
Comment faire une pause de façon portable (sur tous les systèmes) ?
Comment effacer la console ?
Comment afficher du texte à un endroit précis ? Comment effacer certaines parties de la console ?
Comment afficher des caractères accentués sous Windows ? Comment mettre de la couleur dans la console ?
Caractères et chaînes de caractères
Pourquoi ne pas utiliser `char' pour stocker des entiers négatifs ?
Comment définir un caractère ?
Comment récupérer la valeur ASCII d'un caractère ?
Comment définir des chaînes de caractères ?
Comment comparer des chaînes de caractères ?
Comment récupérer un caractère avec ``scanf'' ? une chaîne ?
Comment affecter une valeur à une chaîne de caractères ?
Nombres et pseudo-aléatoire
Comment transformer ma chaîne de caractères en nombre (int, float) ?
Pourquoi les divisions ne renvoient que des entiers ? Comment initialiser le générateur de nombres aléatoires ?
Comment obtenir un nombre au hasard ?
Pourquoi la fonction ``rand'' me renvoie toujours les mêmes nombres ? Comment obtenir un nombre aléatoire entre a et b ?
Que signifient << et >> ?
Environnements de développement et bibliothèques
Comment Configurer son compilateur ?
Comment compiler sous Vista avec MinGW/GCC ? J'ai l'erreur « Uses an invalid compiler » ou « Nothing to be done» sous C::B. Que faire ?
Pourquoi mon programme (développé avec Visual C++ 2005) ne peut-il s'exécuter sur une autre machine que la mienne ?
Quelle est la différence entre une bibliothèque et une librairie ?
Quelle est la différence entre #include <header> et #include "header" ?
Erreurs courantes
Quand je compare mavariable avec un nombre dans un if, la condition est toujours vraie, même si elle n'est sensée pas l'être. Pourquoi ?
Est-ce que j'ai le droit de faire if( variable == 1 || 2 || 3) ? Ajouter les explications des messages d'erreur de GCC : Undefined reference, redefinition, no matching function for call
Comment créer...
Comment créer un MMORPG ?
Comment créer un OS ? Comment créer un programme avec du réseau ?
Comment faire une interface graphique ? Comment créer un crack/virus/trojan/luncher/bot ?
Les inclassables
Celles-ci, je n'arrive pas à leur trouver de catégorie, ni à créer de catégorie suffisamment intéressante pour justifier un singleton. Ce sont :
Quelle forme de la fonction ``main'' utiliser ?
L'instruction `goto' existe-t-elle ? Quand l'utiliser ?
Comment lancer un autre programme ?
Comment récupérer la date et/ou l'heure ?
Comment exécuter une ou plusieurs fonction a la fermeture d'un programme :
Que signifie le signe # dans une macro ?
***
Que pensez vous de l'idée de rénover ce post-it ? Vous en serv[ir]ez vous pour aiguiller plus rapidement les zéros, ou pour trouver une réponse ? Quid de la réorganisation et des nouvelles questions ?
Bien entendu, si vous avez d'autres idées complètement inédites, mais en rapport avec la FAQ, n'hésitez pas à les poster ici !
Merci d'avoir pris la peine de lire ce post et [peut-être] d'y repondre,
GuilOooo
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Ben, le forum de C++ n'a pas de FAQ, mais rien ne les empêche de rediriger leurs zéros vers les réponses appropriées de cette FAQ-là. Juste pour la section IDE.
À défaut d'idées, tu as au moins un avis ? Là, un simple « oui c'est cool, fais-le ! » ou « non, ça ne nous servirait pas, parce que ... » m'aiderait .
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Le problème, c'est que pour la plupart, les Zéros, posent leurs question, avant même de regarder dans la FAQ (ça m'arrive aussi )
Je dois avouer que je n'avais jamais trop prêté attention à la FAQ, jusqu'à récemment, ou j'ai découvert qu'il y avait des question assez intéressantes
Sinon, oui, pourquoi pas, il peut être intéressant de la réorganiser.
- Il y a un chemin vers chaque sommet, même le plus haut -
En fait l'idée, c'est que les habitués qui répondent aux questions disent simplement « va voir dans la FAQ, la réponse y est » lorsque c'est le cas. Petit à petit, on peut espérer que de plus en plus de zéros prendront cette habitude. Le grand nettoyage est donc un « coup de pub » pour lancer cette opération : quitte à utiliser la FAQ, autant qu'elle soit toute belle toute propre, et qu'elle nous plaise !
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Oui, c'est une bonne idée, et, si tu veux, je peux peut être t'aider avec le peu de connaissances que j'ai dans ce domaine
Ce qu'il faudrait faire pour que les zéros prennent l'habitude de se diriger vers le FAQ, c'est, j'y avait pensé, un menu des FAQ sur la page d'accueil, ou celle du forum par exemple.
De plus, il serait bien de remplir un peu plus certaines questions (je pensais notamment à la question "Comment faire un MMORPG") au lieu de nous renvoyer sur d'autres sites : un zéro programmeur, c'est un futur féniant, donc il faut qu'il apprenne à faire le moins possible (je plaisante, bien sur )
C'est vrai que c'est un peu désordonné, et c'est bien de faire un nettoyage "de printemps" de temps en temps.
Une dernière chose :
Je trouve que ça serais plus simple d'avoir plusieurs petites pages web pour les FAQ avec des contributeurs pour pas qu'il y ait des malins à la modifier, mais ça, il faut le demander à l'Admin Suprème M@teo
Voilà pour mon point de vue, j'espère vous avoir aidé.
Je pense que pour que la FAQ soit active il faut surtout que les gens fassent référence à celle-ci. Jusqu'ici je n'ai vu que très peu de personnes faire référence à (aux) FAQ(s), du coup les gens ne prennent même pas la peine de lire ces posts.
Si les gens commencent à faire référence à la FAQ, on pourra alimenter celle-ci par rapport au besoins des zéros et elle deviendra plus vivante
Faire un nettoyage de quelque chose qui n'est pas utilisé, bah ... pas grand intérêt
Moi je suis complétement daccord avec GuilOooo, c'est une excellente idée. C'est vrai que peu de programmeurs regardent la FaQ, bien qu' elle ne soit pas toujours complète elle est tout de même très utile.
Pourquoi ne pas lui mettre une couleur spéciale pour bien la mettre en valeur (du rouge?)
J'ai quelques questions qu'il faudrait insérer (Si vous le voulez-bien):
- Qu'est ce que débugger?
- Comment (bien) debugger?
- Pourquoi quand je fais des jeux en console ça clignote? (ncurse règle le problème)
P.S:
Citation
Je songe aussi à effacer tous les messages qui ne sont pas des questions/réponses, avec l'accord de leurs auteurs. Si ceux-ci passent par là, merci de me donner votre avis.
Les catégories sont bien meilleures que celles qui existent actuellement.
Par contre en les lisant je me rend compte d'un autre problème : le fait que certaines questions sont assez "balèzes", et disposent d'un tuto complet sur le site. Par exemple les nombres aléatoires.
Quelle tactique adopter ? Inclure les questions en renvoyant directement vers le tuto ? Ou zapper la question et "obliger" les gens à chercher dans les tutos (si tant est qu'ils y pensent) ?
Quelle tactique adopter ? Inclure les questions en renvoyant directement vers le tuto ? Ou zapper la question et "obliger" les gens à chercher dans les tutos (si tant est qu'ils y pensent) ?
A mon avis, la première solution (inclure les questions en renvoyant directement vers le tuto ) est meilleure. Ce n'est pas toujours facile de trouver un tuto (On cherche dans la partie programmation C, algo ?).
De même si un sujet traité dans la FAQ(le préprocesseur, par exemple), se retrouve abordé plus en profondeur dans un tuto, ce serait une bonne chose d' éditer la FAQ, et renvoyer vers le tuto.
+1 pour l'idée de rediriger vers les tutos du site. Avec un peu de chance et de travail, ça pourrait contribuer à faire découvrir aux zéros les tutoriels les moins visibles.
D'ailleurs, les questions proposées par realmagma illustrent bien cela : c'est le genre de chose que l'on peut facilement ridiriger vers un tuto du site.
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Je uppe ce sujet pour anoncer que la restructuration est presque terminée. Il subsiste encore probablement des erreurs ou des « restes » de mes modifications. Merci de les signaler ici même.
Je vais maintenant rajouter quelques questions inédites dont nous avons parlé.
Enjoy !
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Je verrais assez bien un truc du genre « Quelle est la différence entre un tableau et un pointeur ? ».
Et aussi dans le même ordre d'idée « Quelle est la différence entre char*str="abc"; et charstr[]="abc"; ? ».
Il faudrait rajouter la distinction entre
char* t="toto";
et
char t[]="toto";
ou autrement dit "Pourquoi mon programme plante que je modifie le contenu d'une chaîne de caractère".
Cette question revient en effet très souvent.
Edit lol on a pensé à la même chose et le forum à complètement foirer parce qu'il ne m'as pas prévenu qu'un message à été poster entre temps
Ehe, il ne plante pas tout le temps . Fin bref, oui il faudrait meme a la rigueur faire un mini tuto sur les chaines de caracteres pour eclaircir tout ça
Et quelqu'un serais du même avis que moi ? Où trouverais que 'est une bonne idée ?
Citation : Titi29
Oui, c'est une bonne idée, et, si tu veux, je peux peut être t'aider avec le peu de connaissances que j'ai dans ce domaine
Ce qu'il faudrait faire pour que les zéros prennent l'habitude de se diriger vers le FAQ, c'est, j'y avait pensé, un menu des FAQ sur la page d'accueil, ou celle du forum par exemple.
De plus, il serait bien de remplir un peu plus certaines questions (je pensais notamment à la question "Comment faire un MMORPG") au lieu de nous renvoyer sur d'autres sites : un zéro programmeur, c'est un futur féniant, donc il faut qu'il apprenne à faire le moins possible (je plaisante, bien sur )
C'est vrai que c'est un peu désordonné, et c'est bien de faire un nettoyage "de printemps" de temps en temps.
Une dernière chose :
Je trouve que ça serais plus simple d'avoir plusieurs petites pages web pour les FAQ avec des contributeurs pour pas qu'il y ait des malins à la modifier, mais ça, il faut le demander à l'Admin Suprème M@teo
Voilà pour mon point de vue, j'espère vous avoir aidé.
Je ne suis personnellement pas d'accord avec toutes les questions de cette FAQ, mais les maniaques de la portabilité a tout prix vont me tomber dessus si je mets mes arguments en avant. Donc n'en parlons plus.
La FAQ est une tres bonne initiative.
Elle sera a mon avis suivi par pas mal de personne voulant progresser, ou tout simplement se documenter.
Ce que je deplore, c'est que cela ne suffira pas. Il y aura toujours des personne (je ne les appel pas zero) qui viendront poser des maniere malpolie des sujet traité des centaine de fois. Mais je pense qu'on pourra rien y faire.
Ce qui serai urgent, ce serait de faire une sorte de tuto sur "Pourquoi et comment gerer les erreur retourné par les fonctions ?".
Je pense notamment a la masse de zero utilisant des fonction de la SDL touchant a l'allocation memoire sans jamais tester si c'est bon.
Ensuite, on a le droit a des dizaine de post du style :
"Je blit mon image, mais c'est tout noir. Pourtant, j'ai tout verifier, mon image charge bien"
Evidemment, il a verifier a l'oeil (tiens, le nom est bon, ca doit suffire).
Dans la meme veine, il serai bien de leur apprendre a se servir des fonction pour afficher les message d'erreur en cas d'erreur (perror, SDL_GetError(), ...)
Je pense notamment a la masse de zero utilisant des fonction de la SDL touchant a l'allocation memoire sans jamais tester si c'est bon.
Ensuite, on a le droit a des dizaine de post du style :
"Je blit mon image, mais c'est tout noir. Pourtant, j'ai tout verifier, mon image charge bien"
Evidemment, il a verifier a l'oeil (tiens, le nom est bon, ca doit suffire).
Dans la meme veine, il serai bien de leur apprendre a se servir des fonction pour afficher les message d'erreur en cas d'erreur (perror, SDL_GetError(), ...)
Cela ne concerne pas la même FAQ C...
Par contre, ce topic est une bonne occasion pour discuter du contenu de la FAQ...
Citation : Fvirtman
Je ne suis personnellement pas d'accord avec toutes les questions de cette FAQ, mais les maniaques de la portabilité a tout prix vont me tomber dessus si je mets mes arguments en avant. Donc n'en parlons plus.
C'est dommage, c'est pourtant le bon endroit pour en parler.
Tester les erreur d'allocation memoire et afficher le message d'erreur via perror fait pourtant partie du C.
Si tu parle de mes exemple SDL, je cite ceux la car c'est eux que l'on voit le plus souvent. Neanmoins, si on met dans la Faq C la bonne pratique a ce sujet, il est probable que les zero le lisant prenne conscience de l'importance de cela et l'applique egalement pour la SDL.
Tester les erreur d'allocation memoire et afficher le message d'erreur via perror fait pourtant partie du C.
Si tu parle de mes exemple SDL, je cite ceux la car c'est eux que l'on voit le plus souvent. Neanmoins, si on met dans la Faq C la bonne pratique a ce sujet, il est probable que les zero le lisant prenne conscience de l'importance de cela et l'applique egalement pour la SDL.
D'accord, donc tu parles de tester le retour de toutes les fonctions qui font des allocations mémoires(malloc, fopen...).
Effectivement, ça à sa place dans la FAQ.
J'ai trouvé ça sur les OS (à rajouter dans la question sur les OS ?).
Mer il et fou ?
En fait le concept de cette FAQ est plutôt de se concentrer sur les questions redondantes du forum pour pouvoir alléger celui-ci et donner une meilleur lisibilité aux "vrais" problèmes.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html