Erreur de compilation

Erreur de compilation - C++ - Programmation

Marsh Posté le 05-01-2007 à 21:23:41    

Bonjour
 
J'ai un projet à faire et lorsque je compile il me donne cette erreur:
 
printf("Le résultat de l'addition est %s:\n",nb3);  
 
51  [Warning] cannot pass objects of non-POD type `class grandnombre' through `...'; call will abort at runtime  
 
Merci de m'aider

Reply

Marsh Posté le 05-01-2007 à 21:23:41   

Reply

Marsh Posté le 05-01-2007 à 21:26:50    

Salut,
 
nb3 n'est pas une chaîne.
Par contre, c'est du C et pas du C++ (utilise std::cout) :/

Reply

Marsh Posté le 05-01-2007 à 21:46:47    

Mon cours porte sur de l'initiation au C++ et je n'ai jamais fait de C.
Désolé IrmatDen, mais je ne connait pas cette fonction.

Reply

Marsh Posté le 05-01-2007 à 22:00:20    

printf vient du C, et ne fait absolument pas partie du C++. Tu l'apprendras plus tard dans ton cours j'espère.
 
Bref, ton erreur vient du fait qu'en mettant %s, printf attend une chaîne de caractère, et que tu lui passes une classe (ou un pointeur de classes, vu le code fourni c'est pas très clair :p).

Reply

Marsh Posté le 05-01-2007 à 22:09:42    

Quand je mets std::cout, il m'affiche:
 
53 C:`cout' is not a member of `std'  
 
Merci

Reply

Marsh Posté le 05-01-2007 à 22:28:43    

Non mais ça résoudra pas ton problème puisque cout ne sauras pas afficher ta classe de toute façon. Je me sens pas trop d'expliquer là, j'ai plutôt envie de rentrer chez moi, et de toute façon autant que tu te tiennes à ton cours, en gardant en tête que printf est une solution "temporaire".
 
Pour l'instant concentre-toi sur tont erreur, er relis mon précédent message.

Reply

Marsh Posté le 06-01-2007 à 03:27:26    

IrmatDen a écrit :

printf vient du C, et ne fait absolument pas partie du C++.


Faux. le standard C++ inclu la bibliothèque C par référence.
 

IrmatDen a écrit :

Bref, ton erreur vient du fait qu'en mettant %s, printf attend une chaîne de caractère, et que tu lui passes une classe (ou un pointeur de classes, vu le code fourni c'est pas très clair :p).


Non, l'erreur est que passer un objet non POD à une fonction variadic (printf) est un comportement indéfini. gcc -- ça à l'air d'être le compilateur que le PO utilise -- est sympa, emet un warning et abort à l'exécution, c'est son droit.

Reply

Marsh Posté le 06-01-2007 à 03:57:39    

Au temps pour moi sur printf, et merci de la rectification :jap:

 

Par contre, pour ta seconde remarque, je ne vois pas trop où tu veux en venir ni en quoi je me trompe :/
Ok, j'ai pas autant détaillé que toi, mais ce que tu marques, c'est ce qu'il y a dans le warning [:spamafote]

 

Edit: c'est vrai que j'aurais ptet pas du partir du partir du principe qu'il veut afficher une chaîne mais ce foutu printf avec son %s me l'a gentiment laissé penser.

Message cité 1 fois
Message édité par IrmatDen le 06-01-2007 à 03:59:47
Reply

Marsh Posté le 06-01-2007 à 09:43:04    

IrmatDen a écrit :

Par contre, pour ta seconde remarque, je ne vois pas trop où tu veux en venir ni en quoi je me trompe :/
Ok, j'ai pas autant détaillé que toi, mais ce que tu marques, c'est ce qu'il y a dans le warning [:spamafote]


Le warning est parfait, j'y peux rien [:spamafote]
 

IrmatDen a écrit :

Edit: c'est vrai que j'aurais ptet pas du partir du partir du principe qu'il veut afficher une chaîne mais ce foutu printf avec son %s me l'a gentiment laissé penser.


C'est peut-être toi qui est dans le vrai.

Reply

Sujets relatifs:

Leave a Replay

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