Discussion:Programmation C++ (débutant)/Notions de base

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Votre avis[modifier le wikicode]

Attention[modifier le wikicode]

Attention:cet article n'est plus aux normes du c++ actuel(biblioteques et fonctions obsoletes sur les nouveaux compilateurs)

Réponse[modifier le wikicode]

Pouvez être plus précis dans vos remarques, notamment en indiquant quel programme ne respecte pas quelle norme. Il serait bon aussi d'indiquer avec quel compilateur vous obtenez un problème sur un des exemples du cours. Merci

Petit problème[modifier le wikicode]

J'ai testé l'exercice 1 avec dev-cpp 4.9.9.2 sous Windows XP. J'ai suivi les instruction et les explications, ce qui m'a vallu un affichage du programme digne de Flash Gordon. J'ai inséré l'instruction ("PAUSE"); J'ai enfin pu apercevoir la fenêtre du programme... seul hic, il se ferme toujours illico. Que puis-je faire pour résoudre ce problème?

Petit problème : réponse[modifier le wikicode]

L'appel à system("PAUSE") n'est pas la seule solution. Pour que le programme se termine sous un ordre de l'utilisateur, on peut saisir un carractère avec getchar()(dans stdio.h). La fonction se termine quand on appuie sur entrée.

Parfait[modifier le wikicode]

Très bonne introduction au C++, simple et compréhensible, ça donne envie de continuer.noritaka666

Idées, suggestions[modifier le wikicode]

Je crois qu'il serait intéressant d'expliquer un peu comment utiliser certains compilateur, comme g++, pour permettre à ce que quelqu'un qui commence de zéro puisse être capable de compiler, et ainsi de pouvoir réussir l'exercice 1. DU moins, donner la commande de base !

C'est certain un article sur comment créer le programme pour dev-cpp et visual c++ est en curs de rédaction Merrheim 15 mars 2006 à 05:53 (UTC)

c++ manage[modifier le wikicode]

pourquoi avoir montre un exemple pour faire du c++ manage avec visual c++ et non pas du c++ "normal" en aplication win32 console?

Petites erreurs[modifier le wikicode]

Section "Un langage compilé" "Les fichiers source sont des fichiers texte lisibles dont le nom se termine en général par .c, .cpp ou .h. "

Les extensions .c et .h sont celles du langage C, pas C++. Bon, par habitude, le .h est utilisé, mais plusieurs IDE/compilateurs se baseront sur l'extension pour déterminer si c'est du C ou du C++, donc, .c n'est pas une extension du C++. Sinon, il manque les extensions utilisées fréquemment pour les template: .tpp notamment.

Section "La directive #include" Les chevrons et les guillemets ont des chemins de recherche différents: les chevrons ne cherchent pas dans le répertoire courant, du moins, pas avec g++ 4.7 et son fonctionnement par défaut. Essayer de faire ce programme: ./t1.h ./t2.h ./test/t3.h ./test/t4.h ./main.cpp

#include <t1.h>
#include "t2.h"
#include <t3.h>
#include "t4.h"

int main(){}

Compiler avec: "g++ main.cpp -I test" ne fonctionnera pas, le premier include échouant.

Section "using namespace std;" 3 choses: _ personnellement, je n'utilise jamais les using namespace, c'est une question de goût, mais j'évite de cacher l'origine de ce que j'utilise, et ça ne m'empêche pas de me servir des outils! (référence à "Si ces fichiers d'en-tête sont inclus sans être suivi de la commande using namespace std;, cela ne fonctionnera pas correctement") _ les fichiers genre <stdio.h> fonctionnent et sont parfaitement standards C++. Il n'y a aucun avertissement, y compris en activant le "mode parano" de g++ (j'active tout le temps ce "mode"). Les fichiers sans extensions servent simplement à rendre la chose plus esthétique (question de goût encore) _ par ailleurs, ces fonctions héritées du C possèdent dans le standard 2 headers: les "cXXXX" et les "XXXX.h"

Section "Le fichier iostream" Le wiki a interprété le "#" de l'include.

Section "cout" Cout n'affiche pas sur la console, mais sur la sortie standard. Certes, un débutant ne verra pas la différence dans un premier temps, mais elle est très, très importante! "sur certaines implémentation" implémentationS Pour le point que certaines implémentations ne sont pas conformes à la norme, tu devrais préciser qu'elles ne sont pas standards. J'imagine qu'il ne s'agit que de vieux compilateurs? Parce que je n'ai jamais entendu parler de ce problème (il faut aussi dire que je n'aime pas les stream donc forcément...)

Section "Remarque" Il n'est pas utile de mettre l'instruction pause si l'on lance le programme à partir d'une console. Et ce problème est identique avec n'importe quel OS.

Section "Utiliser Dev-Cpp sous Windows" Une capture montre l'usage de la fonction "system(char*)" (pour pause) sans inclure le header correspondant. C'est une mauvaise habitude, qui n'est ni portable, ni standard. Il faut ajouter "#include <stdlib.h>" ou "#include <cstdlib>"

Section "autres os" (elle n'a pas ce nom mais bon) Déjà, il existe des IDE, bien plus simples d'accès pour les débutants, et utilisables aussi sous windows (ça aide, quand on viens du monde windows comme c'était mon cas, d'avoir utilisé un IDE comme Code::Blocks qui est portable). Je ne citerai que Code::Blocks, KDevelop, QtCreator, mais il en existe bien d'autres. (Je n'ai pas dis que j'aime les 3 que j'ai cités, cela dit) Donc, merci de ne pas contribuer à répandre l'impression erronée qu'il n'existe pas d'outils graphique de qualité ailleurs que sous windows (je remarque d'ailleurs qu'il n'y a aucune référence à Mac OS mais je ne le connaît pas donc je ne peux aider). Accessoirement, CMake est portable, il peut donc être utilisé sous windows. C'est une bonne idée de le préciser, je pense.

PS: désolé pour le manque de retours à la ligne, je ne suis pas un familier des wiki Bmorel (discussion) 11 octobre 2012 à 12:38 (CEST)

et les include[modifier le wikicode]

L'organisation des fichiers source me semble être un sujet important, notamment en ce qui concerne les include. Je ne l'ai pas vu abordé dans ce livre. le cas échéant, ce serait une lacune.