C sous windows !

C sous windows ! - C - Programmation

Marsh Posté le 05-11-2007 à 18:05:45    

Bonjour, j'ai bien cherché mais je ne trouve pas. Comment peut-on faire du C sous windows ?? Merci

Reply

Marsh Posté le 05-11-2007 à 18:05:45   

Reply

Marsh Posté le 05-11-2007 à 18:09:27    

Avec un editeur de texte et un compilateur c...
Ou un plus simplement un EDI.
Cherche quelque chose comme EDI C windows.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 05-11-2007 à 18:20:48    

Merci pour ta réponse dwogsi mais je débute vraiment dans le langage C et les logiciels que je viens de trouver sur Google sont un difficile à utiliser. Les seuls dont je sais me servir sont Emacs et Gcc que j'utilise à ma fac en TD. Y'aurait-il des logiciels qui sont un peu comme ces derniers sous windows ??  Merci

Reply

Marsh Posté le 05-11-2007 à 18:24:35    

Code::Blocks ou Dev-Cpp (qui est un peu beaucoup buggé, mais pour du Hello World, ça suffit largement).

Reply

Marsh Posté le 05-11-2007 à 18:24:43    

Le portage de GCC sous Windows s'appel MingW.
Normalement, question utlisation, je crois savoir que c'est pareil ou presque.
Après... Emacs ou un autre, tant que ça édite du texte avec de la coloration syntaxique je pense pas que tu aura besoin de plus pour le moment.


Message édité par dwogsi le 05-11-2007 à 18:25:20

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 05-11-2007 à 18:24:44    

cygwin

Reply

Marsh Posté le 05-11-2007 à 18:48:07    

J'ai télécharger Dev-C++. Quelqu'un peut m'aider pour l'utilisation ?? Merci

Reply

Marsh Posté le 05-11-2007 à 19:06:25    

Là j'ai fais un nouveau fichier source, j'y est mis mon programme c :
 
#include>stdio.h>
 
main(){
       int a, carre, cube;
       printf("Nombre\t Carre\t cube\n" );
       for(a=1; a<=5; a++)
       carre = a*a
       cube = carre*a;
       printf("%i\t", a);
       printf("%i\t", carre);
       printf("%i\n", cube);
       }
 
 
Me suis-je trompé dans ma démarche. Et que dois-je faire après ?? Merci  :)

Reply

Marsh Posté le 05-11-2007 à 19:18:06    

Personne pour m'aider ?? Je ne comprend rien.

Reply

Marsh Posté le 05-11-2007 à 19:42:29    

Vraiment personne pour m'aider ??  

Reply

Marsh Posté le 05-11-2007 à 19:42:29   

Reply

Marsh Posté le 05-11-2007 à 19:46:03    

Avez-vous un compilateur ?
 
Le plus employé pour Windows est Visual C++, selon une ancienne étude que j'avais lue dans une revue. Il ne marche qu'avec une version récente de Windows (pas avec mon Windows Me). Il est payant.
 
J'utilise un compilateur gratuit, nommé Dev-cpp, qui fait du C++ ou du C pour Windows. Je le trouve très bien. Il est téléchargeable depuis le site http://www.bloodshed.net
 
Le programme que vous avez fait est un programme pour DOS, ou pour une application "Windows en mode Console". Les applications Windows normales ne commencent pas par main(). Elles commencent par winmain(). Elles utilisent une boucle de traitement des messages. Elles font appel aux fonctions de base de Windows que l'on appelle des API.
 
Il faut plusieurs mois pour maitriser la programmation sous Windows. Cela prend plus de temps que pour apprendre le language C lui-même. Un bon auteur de livres sur le C/C++ et Windows est Charles Petzold. Il y en a d'autres, comme Al Stevens, etc.
 
Bon courage !

Reply

Marsh Posté le 05-11-2007 à 19:47:01    

sans aller plus loin, du haut de mes connaissances très faibles, je dirais :
1/ #include<stdio.h>
2/ printf("\n" ); après le printf(...cube);
3/ pas sûr de moi, mais c'est pas plutôt du C++ ton code ?

Reply

Marsh Posté le 05-11-2007 à 19:48:17    

olivthill > et Visual C++ 2005 Express, c'est du poulet transgénique ? :o

Reply

Marsh Posté le 05-11-2007 à 19:49:28    

C'est du C.
Je crois qu'il faudrait %d au lieu %i dans printf.

Reply

Marsh Posté le 05-11-2007 à 19:51:03    

Aaaaahhh, si seulement Visual C pouvait être du poulet transgénique !!! Quel bonheur ce serait !!!

Reply

Marsh Posté le 05-11-2007 à 19:54:35    

ok, je croyais que printf() ct du cpp, je dois confondre avec une autre fonction qui ressemble :D (sprintf() ?)

Message cité 3 fois
Message édité par MagicBuzz le 05-11-2007 à 19:54:46
Reply

Marsh Posté le 05-11-2007 à 20:20:56    

MagicBuzz a écrit :

ok, je croyais que printf() ct du cpp, je dois confondre avec une autre fonction qui ressemble :D (sprintf() ?)

J'espere au moins que tu le fais expres ...

Reply

Marsh Posté le 05-11-2007 à 20:31:08    

MagicBuzz a écrit :

ok, je croyais que printf() ct du cpp, je dois confondre avec une autre fonction qui ressemble :D (sprintf() ?)


Mais t'as pas fini de venir raconter des bétises sur les langages que tu ne connais pas ? [:mlc]
Tiens, ça t'aidera à moins en sortir (j'espère) : http://www.schweikhardt.net/identifiers.html
 
housse6 > arrives-tu à compiler, et quels messages d'erreurs obtiens-tu ? C'est normalement très explicite. ;)
Je te conseille aussi d'utiliser code::blocks, dev-cpp c'est correct, mais code::blocks est plus mieux. [:dawa]

Reply

Marsh Posté le 05-11-2007 à 20:51:23    

#include<stdio.h>
 
main(){
       int a, carre, cube;
       printf("Nombre\t Carre\t cube\n" );
       //Point d'observation 1
       for(a=1; a<=5; a++)
       carre = a*a
       cube = carre*a;
       printf("%i\t", a);
       printf("%i\t", carre);
       printf("%i\n", cube);
       //Point d'observation 2
       }  
 
Dsl je me suis trompé, je vrai programme est celui-ci. Effectivement, c'est du C et non pas du C++. Que dois-je faire pour l'executer sous windows?? Merci

Reply

Marsh Posté le 05-11-2007 à 20:55:52    

Il te suffit de lancer le .exe généré après compilation.
 
Par contre :
"main()" => ce n'est pas standard, il faut que le type de retour soit explicitement indiqué.
Voici les deux prototypes de main() qui existent :
int main(void)
et
int main(int argc, char **argv)
 
Dans les deux cas, cela signifie qu'on attend un return à la fin de la fonction. ;)
 
 
Pour ta boucle for, si tu n'encadres pas entre accolades les instructions qu'elle doit exécuter, alors seule la première sera prise en compte (carre = a*a). Les autres ne seront exécutées qu'une seule fois, après la fin du for.

Reply

Marsh Posté le 05-11-2007 à 21:10:07    

le .exe généré après compilation ??? "main()", pas standard ???  
Mais on fait comme ça pourtant sur les ordi de ma fac !!!

Reply

Marsh Posté le 05-11-2007 à 21:12:54    

A ma fac on a emacs comme éditeur de texte et Gcc comme compilateur. Je vien de télécharger emacs sous windows mais je ne sais pas comment compiler et je ne peux pas écrire le #. C'est bizarre. Quelqu'un sait pourquoi ??

Reply

Marsh Posté le 05-11-2007 à 21:16:16    

housse6 a écrit :

le .exe généré après compilation ???


 
Lorsque tu compiles sur un unixoïde, le résultat est un binaire, que tu peux exécuter.
Sous Windows c'est la même chose, sauf que le fichier porte l'extension ".exe".
 
Si tu compiles ton programme, tu recevras un .exe à l'endroit que tu as indiqué à ton IDE (dev-cpp donc).
 

housse6 a écrit :

"main()", pas standard ???


 
Il y a des normes pour les langages, qui permettent d'avoir un même comportement quel que soit le système.
Ainsi, si tu respectes la norme, tu peux prendre un même code source, et le compiler sur n'importe quel système (à condition que toutes les bibliothèques utilisées soient également disponibles partout, mais pour le moment ça ne devrait pas être un problème pour toi).
 
Si tu respectes la norme, donc, tu peux écrire un programme sous Windows sur ton PC, et le compiler à la FAC sous Linux. Et inversement.
Et donc, la norme définit que "main()" doit être défini selon l'un des deux prototypes que j'ai mis plus au-dessus.
 

housse6 a écrit :

Mais on fait comme ça pourtant sur les ordi de ma fac !!!


 
Tu apprendras au fur et à mesure que les professeurs sont faillibles. [:dawa]

Reply

Marsh Posté le 05-11-2007 à 21:20:46    

housse6 a écrit :

A ma fac on a emacs comme éditeur de texte et Gcc comme compilateur. Je vien de télécharger emacs sous windows mais je ne sais pas comment compiler et je ne peux pas écrire le #. C'est bizarre. Quelqu'un sait pourquoi ??

 

Oublie emacs sous Windows (et même sous Linux). C'est un bon éditeur pour qui a passé des dizaines d'heures à comprendre comment il fonctionne, mais bon je crois que t'as plus important pour le moment. ;)
En fait, peu importe l'éditeur. Si tu veux, tu peux utiliser notepad.
Un bon éditeur te facilite normalement la tache (donc pas comme notepad), par exemple en te proposant l'indentation automatique du code, la coloration syntaxique, etc.

 

Ensuite, tu as les IDE (Integrated Development Environment, EDI en français pour Environement de Développement Intégré), qui regroupent toutes les fonctionnalités utiles au développement en un seul logiciel : éditeur approprié, compilation, debugging, etc.
Sous Windows, comme IDE tu as dev-cpp, code::blocks, voire eclipse ou visual c++.

 

C'est plus sympa de travailler avec un IDE, mais si tu ne te sens pas encore à l'aise avec tout ça, utilise un simple éditeur (par exemple notepad++, gratuit et qui offre quelques fonctionnalités utiles), et un compilateur, comme mingw (en gros, c'est gcc pour windows).


Message édité par Elmoricq le 05-11-2007 à 21:23:44
Reply

Marsh Posté le 05-11-2007 à 21:24:02    

Et bien, je vous remercie tous mais je remarque que je ne suis apparemment pas assez calé en langage C pour en faire sous Windows étant donné que je ne comprend rien à ce que vous essayez de m'expliquer. Je vous remercie encore et m'excuse de vous avoir fait perdre votre temps. Merci et Bonne soirée.

Reply

Marsh Posté le 05-11-2007 à 21:28:59    

Je le refais en plus simple :
 
1. télécharge notepad++ : http://notepad-plus.sourceforge.net/fr/site.htm
 
2. télécharge gcc pour windows : http://www.mingw.org
 
3. crée un répertoire quelconque sous c:\, par exemple "c:\code". Ouvre notepad++, et tape ce code :

#include <stdio.h>
 
int main(void)
{
   printf("Hello World !\n" );
   return 0;
}


 
4. Sauvegarde ce code dans un fichier "helloworld.c" sous c:\code
 
5. ouvre une console windows (Menu Démarrer>Tous les Programmes>Accessoires>Invite de Commande),
 
6. avec la commande "cd ..." (comme sous linux), place-toi dans le répertoire de mingw, dans lequel se trouve "gcc"
 
7. tape "gcc c:\code\helloworld.c -o c:\code\helloworld.exe"
 
8. tape "c:\code\helloworld.exe"

Reply

Marsh Posté le 08-11-2007 à 16:46:10    

housse6 a écrit :

Là j'ai fais un nouveau fichier source, j'y est mis mon programme c :

Code :
  1. #include>stdio.h>
  2. main(){
  3.        int a, carre, cube;
  4.        printf("Nombre\t Carre\t cube\n" );
  5.        for(a=1; a<=5; a++)
  6.        carre = a*a
  7.        cube = carre*a;
  8.        printf("%i\t", a);
  9.        printf("%i\t", carre);
  10.        printf("%i\n", cube);
  11.        }




Il s'agirait peut être de lire les bases... C'est pas >....h>, mais <...h>, main() est mal défini, il manque un ';'...

 

http://mapage.noos.fr/emdel/init_c.htm


Message édité par Emmanuel Delahaye le 08-11-2007 à 16:49:54

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed