|
Dernière réponse | |
---|---|
Sujet : Help Pour un débutant | |
Harkonnen | And ze winner is..... :d
http://forum.hardware.fr/images/feydrautha.jpg |
Aperçu |
---|
Vue Rapide de la discussion |
---|
Harkonnen | And ze winner is..... :d
http://forum.hardware.fr/images/feydrautha.jpg |
HappyHarry |
|
Harkonnen |
|
HappyHarry |
|
Harkonnen | suis-je donc le seul a penser que
|
ohrrkan | Merci a vous deux pour vos réponse |
Olivier51 | Autre solution qui marchera :
|
Harkonnen | bon, c'est parti pour un cours abrégé de C !
La définition du C Ansi indique que la fonction main doit toujours retourner une valeur. Ca permet par exemple de voir si l'éxécution du programme s'est bien passée ou non. Généralement, si tu retournes 0 (return 0), ça veut dire que l'éxécution s'est faite sans problème. Au fur et à mesure de l'éxécution de ton code, tu peux être amené à faire différents tests de validité, et en fonction de ce test, tu retournes une valeur. Exemple : quand tu créé un socket, tu testes si l'initialisation s'est correctement passée. Si oui, tu continues ton programme, sinon tu renvoies une valeur (2 par exemple) qui te permettra de voir que ton programme ne marche pas parce que l'initialisation du socket s'est mal passée. Le return 0 que je t'ai rajouté est nécessaire, et indique que le programme s'est terminé normalement. La signature de ta fonction signifie ceci : int main(int argc, char **argv) le "int main" signifie que la fonction renverra un integer (une valeur entière). le paramètre argc est le nombre de paramètres que tu as passé en ligne de commandes, +1 pour le nom du programme. le paramètre argv est un tableau de chaines de caractères qui contient les chaines correspondant aux différents arguments. Ex : test.exe toto1 toto2 ici, argc vaudra 3, car il y a 2 paramètres (toto1 et toto2) et le nom du programme (test.exe) argv contiendra les chaines suivantes : argv[0] = "test.exe"; argv[1] = "toto1"; argv[2] = "toto2"; tu pourras ainsi traiter les différentes options de la ligne de commande. Enfin, ton programme fonctionne correctement sous XP. Le problème est qu'il s'agit d'une application console, et donc ça t'affiche le résultat dans la console, qui se referme aussitot. C'est pour ça que tu as l'impression que ça marche pas. Lance ton programme à partir d'une fenêtre MS-DOS. Si tout ça n'est pas marqué dans ton bouquin, c'est parce qu'il est pourri !!! (c'est quoi comme bouquin ?) Pour le C, un seul bouquin possible : "Le Langage C" de Kernighan et Ritchie, les créateurs du langage. LA référence. Une dernière chose à propos de ton source ! J'espère qu'il ne vient pas de ton bouquin, sinon je te conseille de te faire rembourser !! Pour retourner la partie entière d'un décimal, tu as la fonction modf, incluse dans <math.h>. Ce que tu fais est du bricolage archi faux !! ent = cube; => FAUX !! cube est un flottant et ent un entier ! tu auras un cast implicite absolument merdique printf ("la partie enrière de son cube est: %d", ent); oh la la la .... [:leg9] float valeur= 12.85; à remplacer par const float valeur = 12.85 bref... achete le bouquin !!! |
ohrrkan | merci harkonnen met dans mon bouquin ou j'est tirer ce code il dise pas de rajoutée ca, je me demande pk?
Entoucas comme ca ya plus d'erreur et ca compile bien et me creait mon .exe parcontre il me reste alors 2 petite question: d'une le .exe lorsque je le lance ne fait aucune action, rien ne se passe??? je suis sous Windows Xp ca vient de ca ou alors ya un autre pb? et ensuite tu pourrais me dire pk a ton avis c'etait pas marquer dans mon bouquin de C?enfin ce que je veut savoir c a qoi serve précisement tes commandes en plus? enfin voila et merci boy |
Harkonnen | la fonction main doit toujours retourner une valeur ! voici ta fonction rectifiée :
|
ohrrkan | je suis sous Xp et donc j'ai prit borland, parcque j'ai aussi un pc sous linux met e-mac est encore bien compliquer pour moi il me demande plein de truc.
donc avec borland j'est essayer de faire un 1er programe et j'ai un probleme. voila le code du programme: #include <stdio.h> main() { float valeur= 12.85; float carre, cube; int ent; carre= valeur*valeur; cube= carre*valeur; printf ("la valeur%f a pour carré %f et pour cube %f\n", valeur, carre, cube); ent= cube; printf ("la partie enrière de son cube est: %d", ent); } et il me met comme erreur : [C++ Warning] File1.c(12): W8070 Function should return a value soit une erreur sur la ligne 12 cad le "}" donc si qq1 pourrais m'aider la!!! |