# je seche en C



## boubacar_de_monaco (14 Septembre 2006)

Bonjour 

j'ai des exercices a rendre demain en langage C; je viens de recevoir mon nouveau mac. Je me suis dit que j'allais faire mes exercices sur Xcodes.

Seulement je comprend rien a ce logiciel!!! J'utilisais Dev-C++ sur PC et je trouve ca franchement plus simple.

J'ai essayé Aquamacs mais pr le programme le plus simple qui est afficher bonjour, il refuse de compiler. Il me met:



-*- mode: compilation; default-directory: "~/" -*-
Compilation started at Thu Sep 14 20:42:36

make -k 
make: *** No targets specified and no makefile found.  Stop.

Compilation exited abnormally with code 2 at Thu Sep 14 20:42:36



je venais de coder:


#include <stdio.h>

int main ()
{
	printf("Bonjour tout le monde \n");
	system("pause");
	return 0;

}

Bref:

- il y a un logiciel qui ressemble a Dev C++ sur mac?
- pk ca ne veut pas marcher sur Emacs?


Merci beaucoup


----------



## p4bl0 (14 Septembre 2006)

d&#233;j&#224; pourquoi tu ne compile pas dans le terminal avec gcc directement (gcc main.c -o main) ?

et system("pause"); &#231;a existe pas sous mac, c'est du windows &#231;a...


Sinon l&#224; Emacs te dis qu'il ne trouve pas de makefile, ce qui est normal je suppose vu que tu as juste fais un seul .c


----------



## boubacar_de_monaco (14 Septembre 2006)

okay merci 


je vais enlever mon system("pause") mais je met quoi a la place pr "voir" que mon programme marche correctement?

ca veut dire quoi j'ai mis qu'un seul .c? Il faut faire comment pr que ce soit correct?

Merci



edit: j'ai essay&#233; avec gcc en tapant la commande gcc -c nomdufichier.c

ca me met un tas d'erreur dans le genre 
bobo.c:1: error: parse error before '{' token

et celui l&#224; r&#233;p&#233;ter plusieur dizaine de fois:
bobo.c:1: error: stray '\' in program

bobo.c:3: warning: data definition has no type or storage class

enfin bref ca va dans du n'importe quoi. Apr&#232;s que j'essaye d'ouvrir le fichier avec Xcodes mon code est polu&#233; par tout un tas d'autre trucs incomprehensible...

Bref...


----------



## ntx (14 Septembre 2006)

boubacar_de_monaco a dit:


> okay merci
> ca me met un tas d'erreur dans le genre
> bobo.c:1: error: parse error before '{' token
> 
> ...


Parce que tu as fais un copier/coller à partir d'un document qui n'était pas un fichier texte (une page web par exemple) d'où les caractères invisibles en plus.
Pour la pause, tu peux l'enlever, elle est totalement inutile, la sortie de ton programme est affichée dans le terminal.


----------



## p4bl0 (14 Septembre 2006)

boubacar_de_monaco a dit:


> okay merci
> 
> 
> je vais enlever mon system("pause") mais je met quoi a la place pr "voir" que mon programme marche correctement?
> ...


pourquoi tu utilise l'option -c (Compile and assemble, but do not link) ??


j'ai dis "un seul .c" ce que je veux dire c'ets que tu voulais compiler un seul fichier avec l'extension .c, et non pas un projet, avec plusieurs fichier et un makefile 


pour compiler ton truc, va dans le r&#233;pertoire ou il y a ton fichier, puis tape "gcc tonfichier.c -o lenomduprog"

ensuite tu tape ./lenomduprog.



les erreurs que tu &#233;cris ne peuvent pas venir de ton hello world (traduit... beurk :rateau mais apparemment il y a une erreur avant un '{' &#224; la ligne 1

d&#233;j&#224;, que fait un { dans la premi&#232;re ligne de ton fichier ?


Pour ton probl&#232;me d'ouverture avec XCode qui rajoute des truc dans ton code, peut-&#234;tre que c'est un probl&#232;me d'encodage.


----------



## tatouille (14 Septembre 2006)

boubacar_de_monaco a dit:


> okay merci
> 
> 
> je vais enlever mon system("pause") mais je met quoi a la place pr "voir" que mon programme marche correctement?
> ...




```
Standard C Library (libc, -lc)

#include <stdio.h>

#le main () != void ANSI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
int main (void)
{
   unsigned int second = 1;

   printf("Bonjour tout le monde \n");

ANSI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# The sleep() function conforms to ISO/IEC 9945-1:1990 (POSIX.1) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#################system("pause");


   sleep(second);

   return 0;

}
```
merci d'utilser les standards

ISO:ANSI C 1999


----------



## p4bl0 (14 Septembre 2006)

tatouille a dit:


> ```
> Standard C Library (libc, -lc)
> 
> #include <stdio.h>
> ...


oui si par la m&#234;me occasion &#231;a pouvais &#234;tre conforme au standard...

"j'ai des exercices a rendre demain en langage C"
C'est moyen si dans le cours que tu as eu il ne les respectent pas...


----------



## boubacar_de_monaco (14 Septembre 2006)

J'utilise Textedit et j'enregiste en .rtf et je change après en .c

je pense que c'est ca qui corromp mon code parce que bien sur je n'ai pas commencé mon programme par un accolade.

Il faut coder dans quel editeur de texte?

Merci


----------



## ntx (15 Septembre 2006)

boubacar_de_monaco a dit:


> J'utilise Textedit et j'enregiste en .rtf et je change après en .c
> 
> je pense que c'est ca qui corromp mon code parce que bien sur je n'ai pas commencé mon programme par un accolade.
> 
> Il faut coder dans quel editeur de texte?


Tu penses bien : le rtf n'est pas du format texte, fais un "more" sur ton fichier dans le terminal et tu verras les dégats.  Fais une recherche sur le forum, il y a nombre d'éditeurs de texte à commencer par les classiques emacs et vi. Pourquoi tu as déjà abandonné Aquamacs ?


----------



## boubacar_de_monaco (15 Septembre 2006)

et bien j'ai abandonné aquamacs parce qu'il génère des erreurs que je ne comprend pas. Pour le simple programme "bonjour tout le monde" il me sort une erreur code 2 alors que normalement tout devrais bien aller.

Mais j'ai réussi a m'en tirer avec Xcode, j'edite avec et je compile avec gcc. Ca m'as l'air archaique mais au moins ca marche 


Merci pour votre aide a tous


----------



## ntx (15 Septembre 2006)

boubacar_de_monaco a dit:


> et bien j'ai abandonné aquamacs parce qu'il génère des erreurs que je ne comprend pas. Pour le simple programme "bonjour tout le monde" il me sort une erreur code 2 alors que normalement tout devrais bien aller.


Tu n'as pas encore compris que Aquamac n'est qu'un éditeur de texte. Il te donne juste la possibilité d'exécuter des commandes shell sans sortir de l'éditeur. Il n'est en rien responsable des erreurs de compilation puisque ce n'est pas un compilateur. 


> Mais j'ai réussi a m'en tirer avec Xcode, j'edite avec et je compile avec gcc. Ca m'as l'air archaique mais au moins ca marche


Si tu crées le projet qui va bien (Standard tool) tu peux compiler dans XCode, c'est fait pour ça. 

Quand je vois comment tu réagis face au problème, mes doutes concernant la façon d'enseigner l'informatique ne font que grandir. Avant de demander aux étudiants de taper du code, il faudrait quand même leur expliquer un minimum quels sont les différents outils et quel est leur rôle exact. Ca me semble encore un peu confu chez toi.


----------



## boubacar_de_monaco (15 Septembre 2006)

tr&#232;s confus Lol!

En fait le prof nous a mis dvt notepad sous windows et nous a fait enregistrer en .c et utilis&#233; gcc a partir d'une invite de commande dos.

Le probl&#232;me c'est que je n'ai pas de windows chez moi donc... il a fallu que je trouve une solution sur mac.




Merci


----------



## tatouille (15 Septembre 2006)

boubacar_de_monaco a dit:


> tr&#232;s confus Lol!
> 
> En fait le prof nous a mis dvt notepad sous windows et nous a fait enregistrer en .c et utilis&#233; gcc a partir d'une invite de commande dos.
> 
> ...



vous avez eu un cours th&#233;orique 
sur ? 
compiler -> assembler storage -> language machine -> hardware
compiler -> Libc -> kernel -> storage

puis 

header .h
preproc
.c
?

static / linker / dynamic ? 

c'est quand m^me un minimum avant de d'&#233;crire une ligne de C

c'est le pourquoi du comment du C 

et comment cela fonctionne et c'est tr&#232;s confus et il n'y a rien de lol 
car apr&#232;s tu te retrouveras ds le monde du travail avec des mecs comme moi ...
donc tu imagines la claque ....
ca me semble catastrophique comme approche


----------



## koyot3 (15 Septembre 2006)

pour que texte soit visible, tu peux mettre un getchar() alternative à sleep...


----------



## tatouille (15 Septembre 2006)

koyot3 a dit:


> pour que texte soit visible, tu peux mettre un getchar() alternative &#224; sleep...



ce n'est pas probleme de choix de fonction a ce niveau


----------



## p4bl0 (15 Septembre 2006)

Ben fait pareil que ton prof, mais avec un bon &#233;diteur de texte (pas TextEdit) 

Voil&#224; une s&#233;lection d'&#233;diteurs de texte qui ont fait leurs preuves :

1. Dans le terminal (commande pour les lancer = leur nom) :
# vim
# emacs
# pico

2. Application Mac OS X :
# Vim
# TextWrangler
# TextMate (mon pr&#233;f&#233;r&#233
# Smultron
# SubEthaEdit

Et lis ces articles int&#233;ressant de Wikipedia :
http://fr.wikipedia.org/wiki/C_(langage), et notamment la partie "Des sources &#224; l'executable" :
http://fr.wikipedia.org/wiki/C_(langage)#Des_sources_.C3.A0_l.27ex.C3.A9cutable

ainsi que :
http://fr.wikipedia.org/wiki/Compilateur


----------



## Warflo (22 Septembre 2006)

Tant qu'on y est, j'aimerais poser une question aux connaisseurs:
Quelle sont les avantages d'un &#233;diteur de code dans le terminal plut&#244;t qu'une App "normal" ?


----------



## ntx (22 Septembre 2006)

Warflo a dit:


> Quelle sont les avantages d'un éditeur de code dans le terminal plutôt qu'une App "normal" ?


Qu'est ce que tu appelles une "App normal(e)" ?


----------



## Warflo (22 Septembre 2006)

Je veux dire un éditeur de texte avec une fenêtre, pas dans le terminal.


----------



## tatouille (22 Septembre 2006)

Warflo a dit:


> Tant qu'on y est, j'aimerais poser une question aux connaisseurs:
> Quelle sont les avantages d'un &#233;diteur de code dans le terminal plut&#244;t qu'une App "normal" ?



chacun ses habitudes , &#231;a d&#233;pends , faut connaitre les deux 

une app "normal" est souvant un IDE avec des libraries et des sh&#233;mas pr&#233;mach&#233;s

le jour ou tu dois d&#233;ploier et compiler sur une machine en textmode 
tu ne chiales pas


----------



## ntx (23 Septembre 2006)

Warflo a dit:


> Je veux dire un éditeur de texte avec une fenêtre, pas dans le terminal.


Chacun fait fait fait c'qu'il lui plaît !    
Pour des programmes en C/C++ ou en java sans interface graphique à développer,vi/emacs et  la ligne de commande est parfaitement utilisable. C'est ce que je fais toute la journée au boulot depuis des années 
Pour des programmes Cocoa, XCode/IB est plus adapté.


----------



## p4bl0 (23 Septembre 2006)

Warflo a dit:


> Tant qu'on y est, j'aimerais poser une question aux connaisseurs:
> Quelle sont les avantages d'un éditeur de code dans le terminal plutôt qu'une App "normal" ?



si tu ne sais pas quoi choisir, prend MacVim, tu as une fenêtre et si tu apprend les raccourcis clavier, ben ça sera les même dans le terminal avec vim.

Tu peux faire la même chose avec emacs, qui est porté comme mac app dans plusieurs version mais je trouve que la mieux est AquaMacs.


----------



## Warflo (23 Septembre 2006)

Oh, ben moi j'utilise TextMate, mais je voulais savoir si les éditeurs de textes dans le terminal offrait des avantages, par rapport à un éditeur de code qui n'est pas un IDE.


----------



## tatouille (23 Septembre 2006)

truk2oof a dit:


> si tu ne sais pas quoi choisir, prend MacVim, tu as une fen&#234;tre et si tu apprend les raccourcis clavier, ben &#231;a sera les m&#234;me dans le terminal avec vim.
> 
> Tu peux faire la m&#234;me chose avec emacs, qui est port&#233; comme mac app dans plusieurs version mais je trouve que la mieux est AquaMacs.



je vois pas l'inter&#234;t de macvim ni de aquamacs/emacs carbon 
 car il est plus beau quand je lance la version terminal ce sont des appli mode text
tr&#232;s puissante et tr&#232;s bien int&#233;gr&#233;es &#224; la console je ne vois pas l'int&#234;ret de les faire &#233;voluer
en &#233;diteur window  
et &#231;a respecte mon theme terminal et surtout c'est bien plus r&#233;actif j'aime bien aussi nano

Vim-OSXTerminal.png


----------



## p4bl0 (23 Septembre 2006)

tatouille a dit:


> je vois pas l'inter&#234;t de macvim ni de aquamacs/emacs carbon
> car il est plus beau quand je lance la version terminal ce sont des appli mode text
> tr&#232;s puissante et tr&#232;s bien int&#233;gr&#233;es &#224; la console je ne vois pas l'int&#234;ret de les faire &#233;voluer
> en &#233;diteur window
> ...


C'est vrai...


Mais de toute fa&#231;on moi j'utilise TextMate


----------

