Partage
  • Partager sur Facebook
  • Partager sur Twitter

Discussions sur la FAQ du forum de C

Pas celle sur les bibliothèques tierces.

Anonyme
17 juin 2012 à 18:34:51

Merci de la correction. Si je détaille la première partie, ça passe ou pas ?

Citation

Le C++ permet une certaine abstraction (comme string à la place des char*, ou cout et cin à la place de printf et scanf) et certaines techniques utiles (comme les templates pour faire du code générique, les vector, des sortes de tableaux dynamiques ou les algorithmes de la bibliothèque standard)



Le passage que tu cite sur les programmeurs expérimentés je serais plutôt d'avis à le garder, parce que ça montre comment font les pros, et ça insiste bien sur le fait du choisir le langage en fonction du besoin.

Sinon le reste rien à redire. :)
  • Partager sur Facebook
  • Partager sur Twitter
17 juin 2012 à 18:37:18

J'ai indexé le post dans la FAQ, mais informaticienzero peut toujours le modifier s'il le souhaite.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Anonyme
17 juin 2012 à 18:41:04

Merci beaucoup. :)

J'en profite pour dire qu'on pourrait faire "le ménage" dans la FAQ non ? Par exemple corriger certains posts, changer les catégories, etc. Parce que certains posts comme ceux sur scanf sont parfois erronés, et si on met toujours toutes les entrées dans "[8] Les inclassables", ça va vite devenir énorme.
  • Partager sur Facebook
  • Partager sur Twitter
17 juin 2012 à 20:46:51

Citation : informaticienzero


Si je détaille la première partie, ça passe ou pas ?



En ce qui me concerne, je trouve l'introduction historique suffisante, mais c'est toi qui voit :)

Citation : informaticienzero


Le passage que tu cite sur les programmeurs expérimentés je serais plutôt d'avis à le garder, parce que ça montre comment font les pros, et ça insiste bien sur le fait du choisir le langage en fonction du besoin.



Moui, m'enfin d'une part, comme je l'a dit, cela répète ce qui est déjà dit auparavant (réfléchir en terme de fonctions ou d'objets) et d'autre part, personnellement, je suis d'avis de plus insister sur l'importance de choisir un langage qui leur plaît et non un langage adapté à leur besoin. Une fois qu'ils auront suffisamment d'expérience en programmation ils seront capables de déterminer leur besoins et de choisir le langage qui leur convient.

Citation : informaticienzero


J'en profite pour dire qu'on pourrait faire "le ménage" dans la FAQ non ? Par exemple corriger certains posts, changer les catégories, etc. Parce que certains posts comme ceux sur scanf sont parfois erronés, et si on met toujours toutes les entrées dans "[8] Les inclassables", ça va vite devenir énorme.



Je suis du même avis que toi, j'en discutais avec GuilOooo il y a quelques posts ;)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
17 juin 2012 à 20:51:11

Citation : Taurre

Moui, m'enfin d'une part, comme je l'a dit, cela répète ce qui est déjà dit auparavant (réfléchir en terme de fonctions ou d'objets) et d'autre part, personnellement, je suis d'avis de plus insister sur l'importance de choisir un langage qui leur plaît et non un langage adapté à leur besoin. Une fois qu'ils auront suffisamment d'expérience en programmation ils seront capables de déterminer leur besoins et de choisir le langage qui leur convient.



Je vais modifier ça alors.
EDIT : je viens de modifier, si tu veux voir. J'ai juste rajouter une phrase après.

Citation : Taurre

Je suis du même avis que toi, j'en discutais avec GuilOooo il y a quelques posts ;)



Je viens de voir ça. :)
Faudrait vraiment l'organiser en tout cas.
  • Partager sur Facebook
  • Partager sur Twitter
17 juin 2012 à 21:29:39

En fait, il faudrait remanier les catégories.

Je songeais vaguement à une catégorie « Points du langage », qui parlerait des instructions en général (goto, les champs de bits, les opérateurs, etc. etc.) et une autre « Fonctions standard » qui parlerait de printf, scanf, et toutes les autres fonctions standard.

Il y a probablement des posts à merger, à simplifier, voire à supprimer. N'hésitez surtout pas à me faire parvenir vos modifs (par MP si vous voulez une réponse rapide), je les reporterai sans soucis. Même de simples idées (du genre « il faudrait merger [5][8] avec [2][3] ») sont les bienvenues, n'hésitez vraiment pas.

Il se passera probablement quelques semaines avant que je reprenne la FAQ de A à Z, mais contribuez d'ici là. Là question à se poser est : « de quelle FAQ j'ai besoin pour répondre efficacement aux membres » ?

Au passage, si vous avez des idées pour rendre la FAQ plus visible ou plus simple à utiliser, je prends aussi.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
18 juin 2012 à 0:49:53

Citation : informaticienzero

Merci de la correction. Si je détaille la première partie, ça passe ou pas ?

Citation

Le C++ permet une certaine abstraction (comme string à la place des char*, ou cout et cin à la place de printf et scanf) et certaines techniques utiles (comme les templates pour faire du code générique, les vector, des sortes de tableaux dynamiques ou les algorithmes de la bibliothèque standard)



Le passage que tu cite sur les programmeurs expérimentés je serais plutôt d'avis à le garder, parce que ça montre comment font les pros, et ça insiste bien sur le fait du choisir le langage en fonction du besoin.



Chui pas sûr qu'il y ait grand monde qui fasse comme ça. :D En pratique, il y a de gros recoupements entre les langages, technologies, plateformes, etc. Le « besoin » est une chose toute relative, et toutes choses égales par ailleurs, si tu as le choix, autant prendre le langage qui te convient mieux à toi, plutôt qu'au problème. Au final, c'est tellement subjectif, comme truc... surtout pour des langages généralistes comme le C ou le C++.

Bref, je pense comme Taurre que c'est plus une question de choisir le langage qu'on préfère plutôt que le langage adapté au problème. :p
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 juin 2012 à 0:52:01

C'est vrai, mais admettons que je maitrise bien le C et le C++. Dans ce cas, je vais plus choisir le langage le plus adapté, puisque en théorie je peux résoudre mon problème dans les deux langages. Non ?
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2012 à 1:09:41

Citation : informaticienzero

C'est vrai, mais admettons que je maitrise bien le C et le C++. Dans ce cas, je vais plus choisir le langage le plus adapté, puisque en théorie je peux résoudre mon problème dans les deux langages. Non ?



Hm, bah je pense qu'en vrai on a toujours une préférence personnelle. 'Fin généralement t'auras un langage de prédilection pour chaque domaine qui t'intéresse (genre bas niveau, scripting, web, etc.). Ya plein de facteurs qui influent, mais à mon avis, le paradigme n'en fait pas partie ; la manière dont un programmeur découpe un problème, en objets, en fonctions, etc. n'a souvent rien à voir avec le fait que ce soit adapté ou pas au-dit problème ; c'est plus l'habitude et les goûts de la personne qui dictent la manière dont ce sera traité.
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2012 à 7:19:51

Malheureusement on ne choisit pas le langage forcement le mieux adapter mais le moins coûteux en temps et argent...
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2012 à 9:30:45

J'allais vous proposer de vous inspirer de la FAQ de ccl, mais ce ne sont pas tout à fait les mêmes questions qui sont recensées ici... Quand tu proposes deux grandes parties @GuilOoo, tu parles de l'ensemble de la FAQ ou simplement de la huitième partie ? AMHA deux parties pour une FAQ, c'est peu. D'autant plus que beaucoup de débutants ne font même pas la différence avec implémentation native du langage et implémentation de la bibliothèque.

Le problème avec la FAQ en état, c'est qu'elle recense pas mal de points « H.S. » (terme à nuancer évidemment), par exemple sur les IDE ou encore des questions d'ordre plus général comme les « comment créer » (qu'on devrait garder en l'état, pour la fin de la FAQ je pense). Au final, il y a quand même peu de posts qui parlent du C en lui-même (et même des fonctions de la bibliothèque standard qui l'entoure).

@GuilOooo Si je m'ennuie, je noterai quelques idées. Il y a effectivement pas mal de posts qui datent et qui ont besoin d'une petite M.A.J. À ce propos, le lien [6][3] renvoie au [6][5]. Est-ce normal (d'autant plus que les deux traitent de la même questions, je pense qu'on pourrait virer un lien) ?
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
18 juin 2012 à 10:21:03

Je parlais de casser la section 8 en deux.

Sinon, pour les trucs de « comment créer » et le reste, on parle quand même des FAQ de ce forum. Et l'air de rien, « comment créer un OS » a été une question récurrente ici à une certaine période. Ce n'est donc pas forcément absurde de tout garder.

Je passe en coup de vent, je regarderai [6][3] et [6][5] ce soir.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
18 juin 2012 à 10:24:26

Citation

Sinon, pour les trucs de « comment créer » et le reste, on parle quand même des FAQ de ce forum. Et l'air de rien, « comment créer un OS » a été une question récurrente ici à une certaine période. Ce n'est donc pas forcément absurde de tout garder.



Justement, je voulais insister sur la nécessité de ces questions-là. Je ne parlais pas d'une suppression, au contraire, j'évoquais les besoins différents de cette FAQ.
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
18 juin 2012 à 14:03:22

OK, j'avais mal lu, désolé.
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
21 juin 2012 à 16:56:12

Je propose, comme première idée, de rédiger un mini-tuto sur les entrées, qui explique tout bien le buffer, comment il se comporte, ce qu'il faut faire (ou pas, du genre fflush(stdin)) pour utiliser printf et scanf correctement.

Il existe déjà plusieurs mini-tutos de ce genre ; si l'un d'entre eux convient, on peut simplement le reprendre (et éventuellement l'améliorer). Ensuite, toutes les questions sur printf et scanf pourraient rediriger vers le mini tuto en question, du genre un gros lien « J'ai une question sur printf et scanf » -> redirige vers le mini-tuto. Ce serait sans doute plus propre (à la fois pour les lecteurs et les contributeurs).
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
21 juin 2012 à 16:59:04

Ce n'est pas une mauvaise idée, mais je vois mal ce qui regroupe les problématiques de tampons et les entrées/sorties formatées.
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
22 juin 2012 à 17:50:52

Le fait que les débutants aient du mal à s'en servir et posent beaucoup de questions dessus (notamment sur scanf, en fait).
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Anonyme
22 juin 2012 à 17:58:27

Si ça peut aider, on peut aussi en parler dans notre tutoriel en rédaction (hou la vilaine pub !). :)

Du coup, si on se débrouille bien, on devrait pouvoir enlever toute (ou presque) la partie [1] de la FAQ. Dans ce cas, on peut la renommer "Entrées / sorties", ce qui est plus général que "Printf et scanf".
  • Partager sur Facebook
  • Partager sur Twitter
22 juin 2012 à 18:01:13

Ah bon, ta nouvelle ambition est de transformer ton tutoriel didactique et d'approche concrète sur le C en un gros pavé de foire aux questions ?

Je te taquine.


Par contre, uhm, les E/S ça va quand même plus loin que ça AMHA.
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
Anonyme
22 juin 2012 à 18:05:37

Non pas forcément de pavés de questions, mais je pensais au chapitre sur la sécurisation des I/O. Ça permet de définir ce qu'est un buffer, ça permet de découvrir certains comportements de scanf qui peuvent amener des "bugs", ça permet de les sécuriser et ça permet de découvrir d'autres fonctions. Ça peut être pas mal non ?
  • Partager sur Facebook
  • Partager sur Twitter
22 juin 2012 à 18:08:47

Ouais, donc en gros ça se résumerait à « Utiliser les bonnes fonctions d'entrée » « La saisie sécurisée [...] », etc. Mais il y a déjà plusieurs tutos dessus. Apparemment il y avait aussi des idées à propos des entrées/sorties formatées. Et je vois mal comment tu pourrais faire entrer ça dans le même chapitre.
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
22 juin 2012 à 18:10:19

Hey, détendons-nous. Avant de penser à écrire de nouvelles choses, regardons ce qui existe déjà dans les tutos sur le C. Le tuto officiel a déjà un chapitre au sujet des difficultés autour de scanf ; ne pourrait-il pas servir dès aujourd'hui ?

EDIT : on est pas obligés de virer l'entièreté de la section 1. L'idée n'est pas tant de parler spécifiquement d'entrées/sorties formatées, mais plutôt de couvrir les questions principalement posées au sujet des E/S (et comme les débutants apprennent printf/scanf en premier, beaucoup de questions concernent ces fonctions).
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
Anonyme
22 juin 2012 à 18:14:02

Citation : Lucas-84

Apparemment il y avait aussi des idées à propos des entrées/sorties formatées.



Je suis pas au courant, quelles idées ?

Citation : Lucas-84

Et je vois mal comment tu pourrais faire entrer ça dans le même chapitre.



Bah le chapitre ne traiterait pas forcément de toute la partie 1 de la FAQ, mais ça serait quelque chose du genre :

  • Comportements indésirables avec scanf
  • Théorie sur les buffer
  • Des alternatives à scanf
  • Comment bien utiliser scanf ?


Citation : GuilOooo

Hey, détendons-nous. Avant de penser à écrire de nouvelles choses, regardons ce qui existe déjà dans les tutos sur le C. Le tuto officiel a déjà un chapitre au sujet des difficultés autour de scanf ; ne pourrait-il pas servir dès aujourd'hui ?



Je veux bien, je propose juste mon tutoriel parce que le chapitre n'est pas encore rédigé, donc tout le monde peut participer et donner des idées. Celui de M@teo21 peut être bien, mais si y'a des trucs qui conviennent pas, on peut pas modifier. Et je ne demande pas à virer la partie 1, juste de fusionner et virer ce qui doit l'être.
  • Partager sur Facebook
  • Partager sur Twitter
22 juin 2012 à 18:22:40

Citation

Hey, détendons-nous. Avant de penser à écrire de nouvelles choses, regardons ce qui existe déjà dans les tutos sur le C. Le tuto officiel a déjà un chapitre au sujet des difficultés autour de scanf ; ne pourrait-il pas servir dès aujourd'hui ?



Pour moi en effet (après, ce n'est que mon avis), il y a déjà pas mal de ressources sur ce sujet (sur le site comme ailleurs). Je crois que M@teo avait passé un dépoussiérage sur le tuto il y a quelques temps, donc bon, de manière générale, je pense que rediriger vers cette annexe ne devrait pas poser trop de soucis pour le moment.

PS : J'avais proposé une entrée sur les flux bufferisés il y a quelques pages, mais bon, c'était pas vraiment dans le style de la FAQ.

Citation

Je veux bien, je propose juste mon tutoriel parce que le chapitre n'est pas encore rédigé, donc tout le monde peut participer et donner des idées. Celui de M@teo21 peut être bien, mais si y'a des trucs qui conviennent pas, on peut pas modifier. Et je ne demande pas à virer la partie 1, juste de fusionner et virer ce qui doit l'être.



Je n'y suis pas fondamentalement opposé, hein, mais, d'ici que le chapitre paraisse, il faudrait trouver une solution de remplacement, non ?
  • Partager sur Facebook
  • Partager sur Twitter
Staff désormais retraité.
Anonyme
22 juin 2012 à 18:28:04

Citation : Lucas-84

Citation

Je veux bien, je propose juste mon tutoriel parce que le chapitre n'est pas encore rédigé, donc tout le monde peut participer et donner des idées. Celui de M@teo21 peut être bien, mais si y'a des trucs qui conviennent pas, on peut pas modifier. Et je ne demande pas à virer la partie 1, juste de fusionner et virer ce qui doit l'être.



Je n'y suis pas fondamentalement opposé, hein, mais, d'ici que le chapitre paraisse, il faudrait trouver une solution de remplacement, non ?



Certes. C'est vrai que la rédaction est en pause en ce moment (en fait tant que les premiers chapitres ne sont pas validés).
  • Partager sur Facebook
  • Partager sur Twitter
23 juin 2012 à 1:20:48

Déjà il a trois point de la FAQ qui pourrait être regrouper:

Citation

[8][12] Que signifie « ++i » ? Quelle différence avec « i++ » ?
[8][13] Que signifient les deux-points « : » à coté d’un membre de structure ?
[8][14] Quels sont les opérateurs du langage C ? Comment se combinent-ils ?



Ce n'est pas exactement la même chose mais on retrouve de grosse similitude approfondir, le 8-14 pour zaguer les deux autre doit être faisable.

De plus

Citation

[8][10] J'ai un problème lors d'une lecture/écriture avec mon fichier, que faire?



Pourrait être inclus dans la section un qui pourrait pour le coup être renommer I/O.
  • Partager sur Facebook
  • Partager sur Twitter
23 juin 2012 à 12:10:30

Pour 8:12-13-14, ça pourrait faire un bon début d'une section « points de langage » (qu'on pourrait aussi appeler « syntaxe et opérateurs », j'arrive pas à trouver un nom clair pour des débutants).

Et clairement, plutôt que printf/scanf il faudrait que la section 1 concerne les entrées/sorties en général (même si on ne redirige pas systématiquement vers un tuto).
  • Partager sur Facebook
  • Partager sur Twitter
J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
23 juin 2012 à 17:32:33

Plop,

Pour en revenir aux tampons, le soucis c'est qu'il est difficile des les éviter, même au début de l'apprentissage. En effet, le problème peut se poser très vite, avec scanf bien entendu qui pose pas mal de problème de part son comportement, mais déjà rien qu'avec printf. En effet, si l'on prends le jeu du « plus ou moins », il est très fréquent de souhaiter un affichage de la question sans retour à la ligne, par exemple comme ceci :

Quel est l'âge du capitaine ? 42


Or, stdout étant un flux mémorisé par ligne, il n'y a que trois solutions :

- écrire un '\n' pour provoquer le vidage du tampon;
- supprimer le tampon associé au flux stdout;
- vider manuellement le tampon à l'aide de fflush.

Bref, rien de bien évident à comprendre pour un débutant qui n'a pas encore entendu parler ni des fichiers ni des chaînes de caractères. Pour l'instant, je ne vois pas très bien comment éviter cette question sans trop entrer dans les détails et sans perdre le débutant...
  • Partager sur Facebook
  • Partager sur Twitter
23 juin 2012 à 18:17:05

Diviser la FAQ en deux partie une plutôt débutant et une plus avancé ce qui permettrait une plus grand liberté pour le trie.
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2012 à 7:37:21

Petit truc que je pense sa serait rajouter une entrer à la FAQ car la question:

"Pourquoi mon scanf fonctionne pas sa fait 1 heure que je cherche"

"Tu a oublier '&'"

"A oui c'et vrais"

(je caricature)

Mais je me demande si une entrer pourrait parler de vider le buffer, du '&' et de la saisie sécuriser.
  • Partager sur Facebook
  • Partager sur Twitter