C sous windows ! - C - Programmation
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
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).
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.
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
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
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 !
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 ?
Marsh Posté le 05-11-2007 à 19:48:17
olivthill > et Visual C++ 2005 Express, c'est du poulet transgénique ?
Marsh Posté le 05-11-2007 à 19:49:28
C'est du C.
Je crois qu'il faudrait %d au lieu %i dans printf.
Marsh Posté le 05-11-2007 à 19:51:03
Aaaaahhh, si seulement Visual C pouvait être du poulet transgénique !!! Quel bonheur ce serait !!!
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 (sprintf() ?)
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 (sprintf() ?) |
J'espere au moins que tu le fais expres ...
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 (sprintf() ?) |
Mais t'as pas fini de venir raconter des bétises sur les langages que tu ne connais pas ?
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.
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
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.
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 !!!
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 ??
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.
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).
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.
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> |
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"
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 :
|
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
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