Erreur lors de la compilation Dev c++

SoldatPitivier Messages postés 115 Statut Membre -  
SoldatPitivier Messages postés 115 Statut Membre -
Bonjour,

J'ai un message d'erreur trés simple quand je veut compiler mon code, je débute en programmation
"(Linker error) undefined reference to 'printf'.
Ca m'enerve d'autant plus que je ne trouve pas d'ou vient le problème !
Si quelqun pouvait m'aider.
Merci
A voir également:

16 réponses

koma_666 Messages postés 473 Statut Membre 34
 
ah tu mis le #include avec la librairie ?

copie/colle ça. Normalement, la fenêtre devrait s'ouvrir.


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

system("PAUSE");
return 0;
}
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Oui, j'ai ces 3 includes :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

En fait sa marchait trés bien j'usqu'au moment ou j'ai voulu ajouter plein de texte...
Merci
0
koma_666 Messages postés 473 Statut Membre 34
 
Tu peux me coller ton programme stp? Pour que j'y jette un coup d'œil si ça ne te dérange pas.
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Oui, enfin moque toi pas ;D
Une calculette c'est tres basique mais je debute là


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
double choix = 0;

printf ("Que voulez vous faire ?\n\n\n\n");
printf ("1. Addition\n\n");
printf ("2. Soustraction\n\n");
printf ("3. Multiplication\n\n");
printf ("4. Division\n\n ");
ptintf ("5. Infos\n\n\n");
scanf ("%lf", &choix);

if (choix == 1)
{
double nombre1 = 0, nombre2 = 0, resultat = 0; // CALCULETTE +
printf ("Entrez le nombre 1 : ");
scanf ("%lf", &nombre1);
printf ("Entrez le nombre 2 : ");
scanf ("%lf", &nombre2);
resultat = nombre1 + nombre2;
printf ("%lf + %lf = %lf\n\n\n\n\n", nombre1, nombre2, resultat);
}


else if (choix == 2)
{
//CALCULETTE -
double nombre1 = 0, nombre2 = 0, resultat = 0;
printf ("Entrez le nombre 1 : ");
scanf ("%lf", &nombre1);
printf ("Entrez le nombre 2 : ");
scanf ("%lf", &nombre2);
resultat = nombre1 - nombre2;
printf ("%lf - %lf = %lf\n\n\n", nombre1, nombre2, resultat);
}




else if (choix == 3)
{
//CALCULETTE *
double nombre1 = 0, nombre2 = 0, resultat = 0;
printf ("Entrez le nombre 1 : ");
scanf ("%lf", &nombre1);
printf ("Entrez le nombre 2 : ");
scanf ("%lf", &nombre2);
resultat = nombre1 * nombre2;
printf ("%lf x %lf = %lf\n\n\n\n", nombre1, nombre2, resultat);
}








// CALCULETTE /
else if (choix == 4)
{
double nombre1 = 0, nombre2 = 0, resultat = 0;
printf ("Entrez le nombre 1 : ");
scanf ("%lf", &nombre1);
printf ("Entrez le nombre 2 : ");
scanf ("%lf", &nombre2);
resultat = nombre1 / nombre2;
printf ("%lf / %lf = %lf\n\n\n\n\n", nombre1, nombre2, resultat);
}











else
{
printf ("Merci d'entrer une commande correcte !\n\n\n\n\n");
}











system("PAUSE");
return 0;
}




Je pense que c'est tout
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
koma_666 Messages postés 473 Statut Membre 34
 
Se moquer ? Pourquoi ? Je ne me considère pas comme un as de la programmation. Puis même si c'était le cas, tout le monde est passé par là.

je regarde ton programme, je te dis si je trouve qqc.
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Merci bien
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
En fait j'ai enlevé un truc et sa marche aparemment.
J'ai enlevé ptintf ("5. Infos\n\n\n");
J'essaierait de ne plus quafouiller la prochaine fois.
Merci de m'avoir aidé :)
0
koma_666 Messages postés 473 Statut Membre 34
 
oui c'était le problème que je l'ai dit dans le message précédent.
Tu n'es pas obligé de l'enlever ! remplace tout simplement ton 't' par un 'r' pour écrire correctement printf.
0
koma_666 Messages postés 473 Statut Membre 34
 
Bon, là y'a de quoi se bouffer les doigts, et LA, tu peux avoir honte ^^ !

Rien ne te choque dans cette ligne ? ptintf ("5. Infos\n\n\n");

t'as tout simplement mis un 't' au lieu du 'r' ^^

Sinon, je me permet de critiquer ton programme. Il est long pour par grand chose. Plus c'est long, plus y'a moyen de faire des erreurs (de frappes !!! ^^).
Au lieu des mettre des if, else if, else if, else if, etc. utilise le switch.
Force toi également d'aérer ton programme pour mieux t'y retrouver (des tabulations). Là il est simple, mais quand ça se compliquera, avoir un programme bien construit (avec des tabulations à chaque utilisation d'une fonction), ça permet de mieux s'y retrouver quand y'a des erreurs.

Sinon que dire de plus. je ne sais pas. si c'est ton premier programme, c'est quand même du bon boulot. bon courage pour la suite !

je te mets le même programme (calculatrice) que j'ai fait. comme quoi tu vois, on est tous passé par là ;-).




#include <stdio.h>
#include <stdlib.h>

void main(void)
{
float nb1 = 0, nb2 = 0, res = 0;
int typecalc = 0, stop = 1;

while (stop==1)
{

printf("\nQuel type de calcul voulez-vous faire ?\n\nPour une addition tapper 1\nPour une soustraction tapper 2\nPour une multiplication tapper 3\nPour une division tapper 4\n\n");
scanf("%d", &typecalc);
while(typecalc>4 || typecalc<1)
{
printf("\nErreur. Vous n'avez pas rentre une valeur comprise entre 1 et 4.\n");
printf("\nQuel type de calcul voulez-vous faire ?\n\nPour une addition tapper 1\nPour une soustraction tapper 2\nPour une multiplication tapper 3\nPour une division tapper 4\n\n");
scanf("%d", &typecalc);

}

printf("\nentrer nombre 1 : ");
scanf("%f", &nb1);
printf("\nentrer nombre 2 : ");
scanf("%f", &nb2);

switch (typecalc)
{
case 1:
res = nb1 + nb2;
printf("\n %f + %f = %f \n", nb1, nb2, res);
break;
case 2:
res = nb1 - nb2;
printf("\n%f - %f = %f\n", nb1, nb2, res);
break;
case 3:
res = nb1 * nb2;
printf("\n%f * %f = %f\n", nb1, nb2, res);
break;
case 4:
res = nb1 / nb2;
printf("\n%f / %f = %f\n", nb1, nb2, res);
break;
}
printf("\nVoulez-vous refaire un calcul (0 - non / 1 - oui) ?\n ") ;
scanf("%d",&stop) ;
}
}
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Ouais j'avoue c'etait pas brillant de ma part...
Mais les truc switch sa marche pas, j'y arrive pas, sa m'enerve, ...donc je met if, else if, et else, c'est plus long mais je trouve sa plus simple
Dans ton code il y a plein de truc que j'ai pas appris, j'aimerais savoir le faire.
Ou t'as appris a pprogrammer ?
Merci
0
koma_666 Messages postés 473 Statut Membre 34
 
Euh... tu dis que y'a pleins de trucs que tu n'as pas appris. Y'a pas grand chose de plus à part le switch. Peut-être le while, mais c'est pas bien compliqué. faut juste pas inverser ce qu'on met dedans (le différent != ou le égal comparaison ==; le supérieur à ou le inférieur à; etc.), et ne pas faire une boucle infinie.
0
koma_666 Messages postés 473 Statut Membre 34
 
Ben, prend exemple sur mon switch. Entre parenthèse du switch, tu mets ta variable. Dans ton programme ce sera la variable 'choix'. Ensuite dans les 'case', l'action que tu veux faire. Dans ton programme, "resultat = nombre1 + nombre2;", puis le printf que tu veux afficher. Il ne faut pas oublier le 'break' à chaque fois. Et les points virgules comme à chaque fois.

J'ai appris à programmer dans mon école d'ingé (officiellement), et avec un site (officieusement) !

Deux des meilleurs sites pour moi : siteduzero.com
Le tuto est super bien fait. C'est quelqu'un qui a également appris dans son école. Donc c'est bien expliqué pour les débutants, il met son expérience, les problèmes qu'il a rencontré, les difficultés de compréhension qu'il a eu. Donc c'est vraiment nickel. Si tu as du temps à passer, et que tu aimes le C, va jusqu'au bout, au moins jusqu'au 2 premiers chapitres (quand tu arriveras à bien comprendre les pointeurs ce sera déjà une bonne avancée !). Tu seras vraiment à l'aise après pour faire tous les programme simples que tu désires.

le 2eme site : https://c.developpez.com/cours/
Un site bien complet. Mais je te conseille siteduzero.com malgré tout. Pour le tuto sur le C en tout cas, qui est vraiment agréable (je lèche je sais, mais il faut dire quand les choses sont bien faites).


Sinon, une petite question perso : tu veux apprendre pour le plaisir, pour tes études, pour ton travail ?
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
C'est simpa de me dire tout sa
En fait j'apprend a programmer pour le plaisir de savoir le faire, et puis pourquoi pas, faire un metier dans l'informatique. Je suis en 3e.
Eh oui j'apprend avec le site du zero, je suis qu'au tout debut, mais j'essaye de faire different programmes sans tricher sur les codes des autres, rien qu'avec ce que je sais, une fois que je métrise bien, j'avance dans cours et ainsi de suite...
Wouaou ! T'es ingenieur en informatique alors ?
Ton metier c'est ... coder des programmes tout simplement ?
Merci
0
koma_666 Messages postés 473 Statut Membre 34
 
Nonon, du tout ! Je suis étudiant en mécanique, donc, du premier abord, ça n'a rien à voir avec ma formation. Mais je me spécialise dans la technologie de l'information mécanique, donc ça fait partie de la base informatique pour cette spécialisation.

Quand tu maitriseras le C, essaye le dtk+. En gros, c'est pour faire de l'interface graphique pour des programme en C par exemple.

Puis si tu veux, on peut s'échanger nos mails en MP si t'as des questions un jour.
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Oui merci, car je risque d'en avoir beaucoup... vraiment beaucoup
C'est fou, pourquoi faire simple, quand on peut faire compliqué ?
Mes problemes risquent de te parraitre nuls, mais bon comme tu dit on est tous passés par la ...
Merci
0
koma_666 Messages postés 473 Statut Membre 34
 
Le nombre de fois où j'ai oublié un point virgule...
y'a pas d'erreurs bêtes, y'a que des erreurs qui aident à progresser !
si tu veux des programmes que j'ai fait, pour avoir des exemples, ou pour voir quelque chose d'un peu plus complexe, demande moi, y'a pas de soucis. Ils sont pas encore breveté, ni marque déposé ^^!
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Merci beaucoup
Je retourne coder :)
A+
0
koma_666 Messages postés 473 Statut Membre 34
 
Ne deviens pas un geek non plus ^^ !

Allé, bonne soirée. Bonne continuation dans tes études. C'est cool si dès la 3ème tu sais ce que tu veux faire, et que surtout, tu te donnes les moyens !
Puis un dernier petit conseil. Essaye de te faire un peu d'algorithmie avant de passer directement dans le C (même si tout ceux qui font du C ne le font pas!). Ca permet de réfléchir sur le papier au programme que tu veux faire, de gagner du temps (même si tout le monde ne sera pas d'accord avec moi).
0
SoldatPitivier Messages postés 115 Statut Membre 5
 
Merci bonne nuit
0