difference entre printf et cout ????

difference entre printf et cout ???? - C++ - Programmation

Marsh Posté le 20-04-2005 à 17:19:14    

Bonjour,  
Je me suis appercu d'une difference dont je ne comprend pas l'origine entre cout et printf dans le code suivant:  
 
 
 
unsigned char* buf = (unsigned char*) _TIFFmalloc(sz);  
 
TIFFReadEncodedStrip(tif,k,buf, sz );  
for(int j=0;j<8;j++) {  
printf("%d \n",buf[j]);  
cout<<buf[j]<<endl;  
}  
 
printf et cout ne retourne pas les meme valeurs ? pouquoi ?  
 
Printf me retourne les valeurs desirées mais j'aimerai bien comprendre pouquoi ca ne fonctionnait pas avec le cout.  
 
Merci Bajax

Reply

Marsh Posté le 20-04-2005 à 17:19:14   

Reply

Marsh Posté le 20-04-2005 à 17:50:51    

cout te retourne quoi ? les lettres correspondants aux codes ASCII dans ton tableau, non ?


Message édité par papy_danone le 20-04-2005 à 17:54:58
Reply

Marsh Posté le 20-04-2005 à 18:39:06    

"%d" c'est pour un int signé, toi tu as un (unsigned) char. Si je me souviens bien, ton code est printf est donc problématique car tu passes un char là où il attend un int...
Sinon l'équivalent de ce que tu as écris avec cout c'est de caster ton char en int, sinon avec printf c'est "%c".


Message édité par HelloWorld le 20-04-2005 à 18:40:09

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 20-04-2005 à 18:39:52    

en tout cas il existe une balise qui s'appelle [C.O.D.E] :D


---------------
http://www.blastmanu.info
Reply

Marsh Posté le 21-04-2005 à 09:21:30    

cout te renvoie un std::ostream&
A priori j'ai toujours entendu que ct pas très malin d'utilisé les cin, cout en meme temps que les printf, fprintf ..

Reply

Marsh Posté le 21-04-2005 à 10:22:26    

c'est pas que c'est pas malin, c'est que c'est pas pour le même langage...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 21-04-2005 à 10:39:41    

LordHarryPotter a écrit :

cout te renvoie un std::ostream&


cout est un ostream [:aloy]


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-04-2005 à 10:41:35    

HelloWorld a écrit :

cout est un ostream [:aloy]


 
 
C'est ce qu'il a voulu dire : un std::ostream, mais il a dû oublier de désactiver les smileys et le forum a interprété ":o" ;)

Reply

Marsh Posté le 21-04-2005 à 10:46:58    

Elmoricq a écrit :

C'est ce qu'il a voulu dire : un std::ostream, mais il a dû oublier de désactiver les smileys et le forum a interprété ":o" ;)


sans blague...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 21-04-2005 à 11:05:45    

Citation :

cout te renvoie


c'est l'opérateur << qui renvoie une référence sur un ostream, cout est un ostream. cout ne renvoie rien. On a tendance à croire que c'est cout qui fait le boulot, or ce sont les opérateurs <<.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-04-2005 à 11:05:45   

Reply

Marsh Posté le 21-04-2005 à 15:42:09    

HelloWorld a écrit :

Citation :

cout te renvoie


c'est l'opérateur << qui renvoie une référence sur un ostream, cout est un ostream. cout ne renvoie rien. On a tendance à croire que c'est cout qui fait le boulot, or ce sont les opérateurs <<.


exact c'est ceque j'ai voulu dire, en fait de meme je pense que le faite d'utiliser les opérateurs "<<", ">>" avec les fonctions printf qui n'est pas malin, par contre j'insitesur le faite que "<<" ou ">>" renvoie un std::ostream & et pas std::ostream

Reply

Marsh Posté le 21-04-2005 à 15:46:10    

quand on y pense, c'est balot a peu de chose pres on avait des fonctions pruntf et coit, ca aurait ete rigolo


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 21-04-2005 à 17:07:46    

>> manipule un istream &...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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