Partage
  • Partager sur Facebook
  • Partager sur Twitter

Discussions sur la FAQ du forum de C

Pas celle sur les bibliothèques tierces.

20 février 2010 à 0:33:03

Bonjour tout le monde !

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
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
20 février 2010 à 0:48:03

Il serait peut être judicieux de faire une FAQ spéciale IDE, commune au forum C++ et C :)

Pour le reste, j'ai pas trop d'idées, je réfléchis :-°
  • Partager sur Facebook
  • Partager sur Twitter
- Il y a un chemin vers chaque sommet, même le plus haut -
20 février 2010 à 0:52:06

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 ^^ .
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
20 février 2010 à 1:03:45

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. ;)
  • Partager sur Facebook
  • Partager sur Twitter
- Il y a un chemin vers chaque sommet, même le plus haut -
20 février 2010 à 1:13:14

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 !
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
20 février 2010 à 9:43:56

Ben moi je trouve que c'est une tres bonne idee... Si effectivement les zer0s allaient voir la FAQ...
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 février 2010 à 10:23:35

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 :euh:

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 :lol: (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é.
  • Partager sur Facebook
  • Partager sur Twitter
20 février 2010 à 10:34:04

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 ;)
  • Partager sur Facebook
  • Partager sur Twitter
20 février 2010 à 10:59:03

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.


=> Je suis aussi daccord sur ce principe.
  • Partager sur Facebook
  • Partager sur Twitter
20 février 2010 à 11:12:28

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) ?
  • Partager sur Facebook
  • Partager sur Twitter
20 février 2010 à 11:30:23

Citation : Kevin Leonhart


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.
  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
20 février 2010 à 11:39:13

+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.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
21 février 2010 à 21:15:43

Bonjour à tous !

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 !
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
21 février 2010 à 21:35:37

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 char str[] = "abc"; ? ».
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2010 à 21:35:50

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
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2010 à 21:41:56

Ca arrive quand on poste quasi en même temps. ^^
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2010 à 21:42:05

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
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 février 2010 à 11:11:51

Et quelqu'un serais du même avis que moi ? Où trouverais que 'est une bonne idée ? :D

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 :euh:

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 :lol: (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é.

  • Partager sur Facebook
  • Partager sur Twitter
22 février 2010 à 11:21:06

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.
  • Partager sur Facebook
  • Partager sur Twitter

Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

22 février 2010 à 13:08:53

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(), ...)
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2010 à 13:25:28

Citation : SofEvans

La FAQ est une tres bonne initiative.

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. ;)
  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
22 février 2010 à 13:29:47

Je ne comprend pas.

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.
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2010 à 13:37:13

Citation : SofEvans

Je ne comprend pas.

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.
  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
Anonyme
25 février 2010 à 21:34:56

J'ai trouvé ça sur les OS (à rajouter dans la question sur les OS ?).
  • Partager sur Facebook
  • Partager sur Twitter
26 février 2010 à 0:02:40

Citation : InfernoLeZéro

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.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 février 2010 à 16:27:25

On peut quand même mettre des liens intéressants, non ?
  • Partager sur Facebook
  • Partager sur Twitter
27 février 2010 à 13:25:56

Si ça peut encourager les zéros à chercher, oui. J'ai ajouté ton lien dans mon post. Merci pour ta contribution !
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
4 mars 2010 à 8:41:24

tiens, la FAQ est tellement évidente que je n'y avais pas prété attention. Pour la peine je vais m'y atarder un peu plus :)
  • Partager sur Facebook
  • Partager sur Twitter
7 mars 2010 à 14:28:59

La réponse à la question [3][5] (Comment comparer des chaînes de caractères ?) utilise la fonction strcmp(), mais il n'est pas précisé qu'il faut inclure la bibliothèque string.h.

Je sais, c'est un peu chipoter, mais je le signale :p
  • Partager sur Facebook
  • Partager sur Twitter