# Dévelopement en C++ sur Xcode



## Jermy06 (24 Septembre 2006)

Bonjour à tous,

Je suis en 1ere année de BTS Informatique et en vu des mes cours, je me suis installé Xcode pour faire du C++ entre autre. Après avoir compilé mon 1er programme en C++, je me suis aperçu que certaines commandes étaient inconnues ou la syntaxe d'exécution est différente. Le programme n'a aucune erreur (je l'ai fait vérifié auprès de mes professeurs). Es il existe un catalogue avec toutes les syntaxe en C++ ? connaissez vous quelques équivalence ?
Je m'excuse si je ne suis pas très très clair mais je début en C++ donc j'ai un peu de mal a m'y faire.
Merci d'avance pour votre aide 

Jermy


----------



## PA5CAL (24 Septembre 2006)

Bonjour et bienvenue sur Mac Gé 

Généralement, quand il y a des problèmes de compilations, c'est qu'on essaye d'utiliser des fonctions ou des syntaxes non standards, du type de celles qu'on trouve chez Microsoft.

Le mieux serait de nous dire exactement de quoi il retourne.

Aurais-tu un court exemple à nous soumettre ?

Fais-nous un copier-coller de ton code entre deux balises CODE (bouton "#" de l'éditeur de messages).


----------



## lezzar (24 Septembre 2006)

C'est bizare ce que tu dis ! Si ton programme est correct ya pas de raisons qu'il ne compile pas avec Xcode. Ca donne quoi comme message d'erreur ?

Perso j'ai eu mon mac récement et j'ai pas pu compiler un programme car X11 n'était pas installé. Mais sinon aucun problème.

Avec le terminal ca compile pas non plus ?


----------



## Jermy06 (24 Septembre 2006)

Que je vous explique, j'ai installé Xcode et X11 aussi.
Dans Xcode j'ai fait créer un nouveau projet, et j'ai sélectionné la seule option qui me proposait de faire du C++ voici ce que j'ai mis :


```
#include <iostream.h>

int main () {
    int valeur, essai, nbre = 1 ;
	
	cout<<"entrer le nombre... " ;
	cin>>valeur ;
	cout<<"Entrer un essai = " ;
	cin>>essai ;
	while (essai != valeur) {
		if (essai > valeur)
			cout<<"Trop grand !" ;
		else
			cout<<"Trop Petit !" ;
		cout<<"Entrer un nouvel essai =" ;
		cin>>essai ;
		nbre++ ;
	}
	cout<<"Vous avez trouvé en "<<nbre<<" fois";
}
```
Ce code est la version que j'ai améliorer pour quelle puisse fonctionner, avant d'arriver a cette version du programme, lorsque je faisai "build and Go" il me disais que la fonction "Clrscr" pour effacer l'écran été inconnue et les lignes : "cout<<"entrer le nombre..." ; cin>>valeur ;" étaient fausses. J'avais pouratnt simplement copier le programme que mon professeur m'avait donné.
Es ce que c'est la fonction de Xcode "Build and Go" qui ne marche pas très bien ?
Merci pour vos réponses 

Jermy


----------



## PA5CAL (24 Septembre 2006)

Voici un correctif possible:

```
#include <iostream>

int main () {
    int valeur, essai;
	int nbre = 1 ;
	
	std::cout << "entrer le nombre... " ;
	std::cin >> valeur ;
	std::cout << "Entrer un essai = " ;
	std::cin >> essai ;
	while (essai != valeur) {
		if (essai > valeur)
			std::cout << "Trop grand !" ;
		else
			std::cout << "Trop Petit !" ;
		std::cout << "Entrer un nouvel essai =" ;
		std::cin >> essai ;
		nbre++ ;
	}
	std::cout << "Vous avez trouv&#233; en " << nbre << " fois";
	return 0;
}
```


----------



## ntx (24 Septembre 2006)

Ton prof a oublié de te parler des namespaces ou espaces de nommage.
Les classes cout, cin,  sont dans le namespace std. Il faut donc soit dire au compilo que tu vas utiliser ce namespace en mettant après les includes:

```
using namespace std;
```
soit préfixer tes utilisations par "std::" :

```
std::cout<<"entrer le nombre... " ;
```
Quant aux instructions inconnues c'est tout simplement qu'elles ne sont pas dans la norme : Visual C++ c'est du M$ par de l'ANSI.


----------



## Jermy06 (24 Septembre 2006)

Merci a vous deux je commence a y voir plus clair a ce sujet ^^
Vous ne savez pas si il existe un répertoire quelque chose du genre où les commandes sont référencées ? Je cherche la commande pour effacer l'écran.
Une fois que mon programme est terminé, pour le visualiser sans passer par Xcode je peux utiliser la Console ?
Encore une fois je vous remercie pour vos réponses, ce forum est très sympa ^^

Jermy


----------



## PA5CAL (24 Septembre 2006)

[MODE COUP-DE-GEULE ON]

Au passage:

Je trouve vraiment honteux que l'Education Nationale mette au programme des mati&#232;res li&#233;es &#224; l'informatique l'enseignement exclusif des outils Microsoft, en les pr&#233;sentant comme des logiciels standards et universels.

Au lieu d'apprendre &#224; utiliser un compilateur, un SGBD, un tableur ou un traitement de texte, on n'apprend plus maintenant qu'&#224; utiliser Visual C++, Access, Excel et Word.

Depuis la visite de Bill Gates &#224; Chirac, l'Education Nationale est devenue une v&#233;ritable fabrique de clients Microsoft dociles et cr&#233;tins  !

Heureusement, il reste encore des profs clairvoyants, et des plateformes qui n'ont pas encore &#233;t&#233; mang&#233;es par M$.

[MODE COUP-DE-GEULE OFF]


----------



## ntx (24 Septembre 2006)

Jermy06 a dit:


> Vous ne savez pas si il existe un répertoire quelque chose du genre où les commandes sont référencées ?


Tu trouveras une référence ici.


> Je cherche la commande pour effacer l'écran.


Il n'y a pas de commande C pour effacer l'écran, il faut passer par une commande système Unix - qui bien sur ne marchera pas sous Windows. Bienvenu dans un monde d'incompatibilité.  


> Une fois que mon programme est terminé, pour le visualiser sans passer par Xcode je peux utiliser la Console ?


Oui mais de toute façon quand tu le lances sous XCode il démarre dans une console.


----------



## ntx (24 Septembre 2006)

PA5CAL a dit:


> [MODE COUP-DE-GEULE ON]
> Je trouve vraiment honteux que l'Education Nationale mette au programme des matières liées à l'informatique l'enseignement exclusif des outils Microsoft, en les présentant comme des logiciels standards et universels.


+1  
D'autant que dans le monde du travail, c'est loin d'être le cas. Ca fait des années que je code et je n'ai jamais écrit une seule ligne en VC++. Et depuis quelques temps, Linux (donc Unix) est de plus en plus demandé. Il faudrait que l'éducation nationale se mette à la page et surtout fournisse de vrais professeurs d'informatique et pas des mécaniciens ou des électroniciens reconvertis et qui ne savent même ce qu'est un namespace. :mouais: Combien voit-on de jeunes diplômés arrivés dans le monde du travail avec des connaissances en retard d'une ou deux technologies ou normes. :mouais:


----------



## PA5CAL (24 Septembre 2006)

Jermy06 a dit:


> Vous ne savez pas si il existe un répertoire quelque chose du genre où les commandes sont référencées ? Je cherche la commande pour effacer l'écran.


J'ai peur qu'une telle commande ne soit spécifique au système (que dire d'un effacement d'écran quand la sortie standard se fait sur une line printer ?).




Jermy06 a dit:


> Une fois que mon programme est terminé, pour le visualiser sans passer par Xcode je peux utiliser la Console ?


Affirmatif. Tu peux cliquer directement sur le fichier exécutable, ou lancer la console (qui s'appelle Terminal) et taper le nom du programme.

Si ton programme s'appelle "toto", l'exécutable en mode debug se trouvera dans "toto/build/Debug/". Attention: pour l'exécuter à partir de la console, il faudra absolument spécifier un chemin, soit au minimum le dossier courant ("*./*toto").


----------



## Jermy06 (24 Septembre 2006)

Je suis tout a fait d'accord avec toi.
Mon oncle est directeur d'une école primaire sur Nice. il y a une dizaine d'année le parc informatique de cette école été des Mac. Lorsqu'il a fallu renouveler le parc informatique la mairie n'a pas laissé le choix que de prendre des horribles tours avec Windaube. Depuis il y a des problèmes tout les deux jours avec le parc (machines qui bug, problème de connexion a Internet et pour couronner le tout, la marie ne s'est pas enmer*** a installer un réseau digne de ce nom, elle a tout mis en CPL une fois par semaine il faud chager un ou deux adaptateur car ils ont grillés...)... Il serai temps que le gouvernement vois autre chose que Billou et qu'il n'y a pas que office dans la vie, il y a tellement de choses a explorer dans le monde de l'informatique et il est dommage que nos bambins s'arrête qu'a la vision de Microsoft de ce monde. Je connais apple depuis longtemps mais je n'avais jamais eu l'occasion d'utiliser un Mac au quotidien, depuis que j'ai mon MacBook je me demande comment j'ai fait pour passer autant de temps sur Windaude entre les bugs, les problèmes de sécurité et les drivers, c'est vraiment l'horreur...
Bon je vais m'arrêter là sinon je vais vous faire un roman mais j'ai quelque chose qui résume bien ce que je pense : Cliquez ici
Have fun  !

Jermy


----------



## lezzar (24 Septembre 2006)

Euh moi suis en fac master 2 info et j'ai jamais codé sous windows.

Et c'est pas forcément bien non plus  J'ai un pote qui a failli être recalé à une école pour ca. Finalement, ils l'ont pris et lui ont fait suivre un stage intensif pour voir les outils de développement sous windows.


----------



## PA5CAL (24 Septembre 2006)

lezzar a dit:


> Euh moi suis en fac master 2 info et j'ai jamais codé sous windows.
> 
> Et c'est pas forcément bien non plus  J'ai un pote qui a failli être recalé à une école pour ca. Finalement, ils l'ont pris et lui ont fait suivre un stage intensif pour voir les outils de développement sous windows.


Les facs sont les derniers bastions qui résistent encore à l'envahisseur, *nix oblige.

Entendons-nous. Je ne suis pas contre l'enseignement de Windows et des logiciels M$ à l'école. Comme ça représente la plus grosse part de marché actuelle, il serait suicidaire de faire l'impasse là-dessus. Mais de là à ne faire faire que ça, et agir comme s'il n'y avait rien d'autre... !


----------



## koyot3 (24 Septembre 2006)

PA5CAL a dit:


> [MODE COUP-DE-GEULE ON]
> 
> Au passage:
> 
> ...



bien d'accord
quoique dans mon iut c'est fini le monde microsoft...
a nous le openoffice

il nous reste just le access et vb express


----------



## ntx (24 Septembre 2006)

PA5CAL a dit:


> Entendons-nous. Je ne suis pas contre l'enseignement de Windows et des logiciels M$ à l'école.


Certes mais quand le programme prévoit un cours de C/C++ qu'ils ne collent pas à la place un cours de Visual C++ : ce n'est pas la même chose ! :hein: Il n'est pas normal de se retrouver avec des MacUser qui se demandent pourquoi leur programme écrit en "C++" ne compile pas sur XCode, alors que c'est tout simplement parce que n'est pas du "C++" standard. Le Visual C++ n'est pas la norme ANSI. :hein:


----------



## p4bl0 (24 Septembre 2006)

ntx a dit:


> Certes mais quand le programme prévoit un cours de C/C++ qu'ils ne collent pas à la place un cours de Visual C++ : ce n'est pas la même chose ! :hein: Il n'est pas normal de se retrouver avec des MacUser qui se demandent pourquoi leur programme écrit en "C++" ne compile pas sur XCode, alors que c'est tout simplement parce que n'est pas du "C++" standard. Le Visual C++ n'est pas la norme ANSI. :hein:


+1


----------



## tatouille (25 Septembre 2006)

PA5CAL a dit:


> [MODE COUP-DE-GEULE ON]
> 
> Au passage:
> 
> ...



houep ils sont graves ses &#233;tudiants 
la commande est clear

il y a windows et ses normes et les normes ISO internationales
la fonction n'est pas ISO donc inacceptable ds du code scuris&#233;

les mecs ils aprennent le cpp sous windows visual 
au moins c'est sur qu'on aura pas de concurrence 

h&#233; les mecs a 15 ans quand l'internet n'existait pas 
je ne me suis jamais trouv&#233; ds des positions de creuvard comme cela 

et le build and go de xcode pointe sur template makefile 
c'est tout les projects templates sont des makefiles 
........ pr&#233;configur&#233;s


----------



## tatouille (25 Septembre 2006)

ntx a dit:


> Certes mais quand le programme pr&#233;voit un cours de C/C++ qu'ils ne collent pas &#224; la place un cours de Visual C++ : ce n'est pas la m&#234;me chose ! :hein: Il n'est pas normal de se retrouver avec des MacUser qui se demandent pourquoi leur programme &#233;crit en "C++" ne compile pas sur XCode, alors que c'est tout simplement parce que n'est pas du "C++" standard. Le Visual C++ n'est pas la norme ANSI. :hein:



oui microsoft est un sp&#233;cialiste du bordel et qui se fou des normes internationnales


----------



## tatouille (25 Septembre 2006)

PA5CAL a dit:


> Voici un correctif possible:
> 
> ```
> #include <iostream>
> ...



le'etudiant fein&#233;ant ne prend pas la peine d'esayer de comprendre les complaintes explicites de son compilo il pr&#233;f&#232;re chialer


----------



## Jermy06 (28 Septembre 2006)

sa fait des mois que je cherche alors avant de parler informe toi...


----------



## ntx (28 Septembre 2006)

Jermy06 a dit:


> sa fait des mois que je cherche alors avant de parler informe toi...


Des mois, des mois : ne serais-tu pas un peu marseillais ?  Le fil ne date que de quelques jours.


----------



## tatouille (29 Septembre 2006)

ntx a dit:


> Des mois, des mois : ne serais-tu pas un peu marseillais ?  Le fil ne date que de quelques jours.




piouf des mois


----------



## Warflo (29 Septembre 2006)

ntx a dit:


> Des mois, des mois : ne serais-tu pas un peu marseillais ?  Le fil ne date que de quelques jours.


Tu aurais quelques chose contre le Marseillais ?


----------



## p4bl0 (29 Septembre 2006)

ntx a dit:
			
		

> Des mois, des mois : ne serais-tu pas un peu marseillais ?  Le fil ne date que de quelques jours.


oui d'abord, t'as quoi contre les marseillais ? :mouais:


----------



## Tarul (30 Septembre 2006)

PA5CAL a dit:


> [MODE COUP-DE-GEULE ON]
> 
> Au passage:
> 
> ...


pour avoir faire un BTS IG, je ne suis guère étonné de la situation. Le BTS est un diplôme à vocation professionnel et pratique. Hors que l'on veille ou non, dans les entreprises il y a beaucoups de Windows sur les postes clients et un AD pour les gérer. 
Et encore il a fait du C++, moi c'était du VB.net et du VBA 



lezzar a dit:


> Euh moi suis en fac master 2 info et j'ai jamais codé sous windows.
> 
> Et c'est pas forcément bien non plus  J'ai un pote qui a failli être recalé à une école pour ca. Finalement, ils l'ont pris et lui ont fait suivre un stage intensif pour voir les outils de développement sous windows.


et moi dans ma lic pro(spé logiciel libre ) pareil pas une ligne de code sous windows., ni de c++ d'ailleur en 3 ans d'étude informatique.

Pour moi le plus important, c'est d'apprendre les bonnes méthodes de développement. le language est un problème technique qui est facile en général a surmonter.
Après, c'est vrai que le nom respect de microsoft des normes, ainsi que l'ajout d'extension peu documenté ou soumis a des royalties a des standarts comme kerberos est une vrai plaies



pour notre ami qui souhaite faire du C++ sur notre plateforme favorite, je trouve personellement que ce n'est pas forcément la meilleur idée. En effet le support du C++ est relativement récent dans xcode. Il n'est pas impossible qu'il y est des bugs. Enfin tu as des habitudes de C++ windows, ce n'est pas forcément une bonne idée.

Pourquoi ne pas essayer le c, ou l'objective-c qui sont des langage natifs de mac os X depuis longtemps?

Au fait que donne l'autocomplementation du c++ sous xcode? As tu pensé a installer la doc concernant le c++(si tu souhaite continuer avec)


----------



## ntx (30 Septembre 2006)

Tarul a dit:


> pour notre ami qui souhaite faire du C++ sur notre plateforme favorite, je trouve personellement que ce n'est pas forcément la meilleur idée. En effet le support du C++ est relativement récent dans xcode. Il n'est pas impossible qu'il y est des bugs. Enfin tu as des habitudes de C++ windows, ce n'est pas forcément une bonne idée.


   Qui t'a mis ça dans la tête ? Du C++, c'est du C++ quelque soit l'OS !


----------



## Tarul (30 Septembre 2006)

ntx a dit:


> Qui t'a mis ça dans la tête ? Du C++, c'est du C++ quelque soit l'OS !




je ne sais pas, je ne fait pas de c++. 
Mais si les méthodes d'appel de "count" n'est pas la même entre windows et les autres. Cela peut être déroutant. Je sais ca vaut pas terrible comme argument. Mais si mon code c++ fait sur windows utilisant des composants portables est obligé de changer parcequ'il manque un namespace ou parcequ'il y a un truc en trop. cela aura tendance a vite me gonfler. :rose:

Bref, je suis un drogué de Java, VB.net(quand c'est sur windows), et pas encore d'objective-c. j'ai pas encore eut le temps de m'y mettre à fond.:rose:


----------



## tatouille (30 Septembre 2006)

Tarul a dit:


> je ne sais pas, je ne fait pas de c++.
> Mais si les m&#233;thodes d'appel de "count" n'est pas la m&#234;me entre windows et les autres. Cela peut &#234;tre d&#233;routant. Je sais ca vaut pas terrible comme argument. Mais si mon code c++ fait sur windows utilisant des composants portables est oblig&#233; de changer parcequ'il manque un namespace ou parcequ'il y a un truc en trop. cela aura tendance a vite me gonfler. :rose:
> 
> Bref, je suis un drogu&#233; de Java, VB.net(quand c'est sur windows), et pas encore d'objective-c. j'ai pas encore eut le temps de m'y mettre &#224; fond.:rose:



le cpp a un standard libc++

-1 si microsoft utilise ses propres implementations du language c'est son probleme
( ps c'est assez con de s'&#233;loigner du standard dans un language objet ou il aurait &#233;t&#233; plus simple
d'ajouter un framework + namespace microsoft , avec l'appel de m&#233;thodes sp&#233;cifiques redefinies
mais faut-il avoir compris &#224; quoi sert l'objet et les standards ... )

-2 il n'y a pas besoin d'Xcode pour faire du cpp 
-3 les namespaces globaux visibles ou non sont des options de compilation ...

/*

pour notre ami qui souhaite faire du C++ sur notre plateforme favorite, je trouve personellement que ce n'est pas forc&#233;ment la meilleur id&#233;e.
*/

tu me la referas parce que le nombre d'appli cod&#233;es en c++ 
sous OS X ... ( la plupart des applis carbon , un bon nombre d'appli UNIX Base BSD ...)

de plus XNU le noyeau est cod&#233; en c++ .... + IOKit et pratiquement toutes les private frameworks de base 


le c++ est naturel sous OS X et est ISO 99 ( ce n'est pas encore vraie pour toute la base BSD )


----------



## julrou 15 (30 Septembre 2006)

tatouille a dit:


> -2 il n'y a pas besoin d'Xcode pour faire du cpp



On peut utiliser quoi à la place ??


----------



## PA5CAL (30 Septembre 2006)

julrou 15 a dit:


> On peut utiliser quoi &#224; la place ??


Un &#233;diteur de texte (brut) et une cha&#238;ne de compilation C++. A priori n'importe lesquels, c'est &#233;gal, du moment qu'ils tournent sur Mac OS X (pour faire simple).


----------



## julrou 15 (30 Septembre 2006)

PA5CAL a dit:


> Un &#233;diteur de texte (brut) et une cha&#238;ne de compilation C++. A priori n'importe lesquels, c'est &#233;gal.



un &#233;diteur de texte brut : par exemple TextEdit, non ??

une chaine de compilation C++ : quoi ??


J'ai d&#233;j&#224; XCode, qui est tr&#232;s bien, mais qu'est-ce qu'il prend comme place !!!!


----------



## PA5CAL (30 Septembre 2006)

julrou 15 a dit:


> un &#233;diteur de texte brut : par exemple TextEdit, non ??
> 
> une chaine de compilation C++ : quoi ??


TextEdit convient (il m'arrive souvent de l'utiliser).

Pour la cha&#238;ne de compilation, j'utilise _gcc_ (ce n'est pas la peine de chercher midi &#224; 14 heures), mais n'importe quelle cha&#238;ne de compilation recompil&#233;e sous Mac OS X peut marcher.

Une cha&#238;ne de compilation, c'est l'ensemble des outils n&#233;cessaires &#224; la cr&#233;ation d'un ex&#233;cutable (pr&#233;processeur, compilateur, linker, binder, ...).


----------



## julrou 15 (30 Septembre 2006)

PA5CAL a dit:


> TextEdit convient (il m'arrive souvent de l'utiliser).
> 
> Pour la chaîne de compilation, j'utilise _gcc_ (ce n'est pas la peine de chercher midi à 14 heures), mais n'importe quelle chaîne de compilation recompilée sous Mac OS X peut marcher.




OK, merci !!


----------



## PA5CAL (30 Septembre 2006)

Pour TextEdit, il faut seulement faire attention de l'utiliser en format texte brut, et pas en format RTF.


----------



## p4bl0 (30 Septembre 2006)

PA5CAL a dit:


> Pour TextEdit, il faut seulement faire attention de l'utiliser en format texte brut, et pas en format RTF.


Mieux vaut ne pas utiliser TextEdit. Enfin non, c'ets pas qu'il ne vaut mieux pas l'utiliser, mais il y a mieux.

Des &#233;diteurs de textes sp&#233;cialis&#233;s pour la programmation comme TextMate (le meilleur je trouve), Smultron, TextWrangler, SubEthaEdit, Vim...

Il y a la coloration syntaxique, mais aussi l'auto-completion et tout un tas de fonctionnalit&#233; tr&#232;s utile quand on code.


Donc conseille &#224; Julron 15 d'utiliser plut&#244;t un de ses &#233;diteurs de textes.

Une liste dans les adresses utiles rubrique "Editeurs de texte :"
sauf pour _Taco HTML Edit_ et _BorakHTML_, ils peuvent tous &#234;tre utilis&#233; pour la programmation ne g&#233;n&#233;rale (_Taco HTML Edit_ et _BorakHTML_, en plus de na pas &#234;tre les meilleurs, ne sont fait que pour le html)


----------

