Bonjour a tous,

Je suis en train de bosser le c++...

Et il y a deux trois trucs sur lesquels j'ai du mal a trouver des infos, globalement j'ai a peut près réussit a comprendre le fonctionnement en général, mais je voudrais juste être sur de ce que je fais... ( de grandes esperances vous allez me dire ! encore des questions de noob...) mais surtout être sur d'avoir compris le principe, vu que mon prof n'est pas ouvert a la discussion... ni au bricolage ! (comprendra qui pourra ! (perso promo).

-Pour le moment je suis sur la partie formatage des sorties, les points qui me sont délicats sont :

- on va commencer avec une question bête : lors de la spécification d'un flux j'ai rencontré deux formats, par exemple : cout << "etc..." << std::flush; et std::cout << "etc ..." << endl;
q1 : le "std::" c'est pour la forme?, histoire de dire qu'on est standard ? si toutefois on peut ne pas l'être ! (vous allez me dire, question de point de vue...) mais disons que si on veut bien faire les choses, la précision de "std::" s'impose t'elle?
q2 : le flush, j'ai bien compris que c'étais pour forcer l'affichage (provoqué par le vidage du tampon). mais apparement celui-ci est automatiquement provoqué par le endl, et franchement je crois que je ne l'ai jamais vu employé, les sorties qu'on m'a appris a coder se font sans... alors est-ce qu'on m'apprend a coder avec les pieds? a l'arrache et en bricolant justement...

- Globalement j'ai compris qu'on pouvais formatter un flux de plusieures façons :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
/*pour le formatage d'un flux de sortie en totalité et seulement lui*/
1. cout.setf(ios_base::scientific,ios_base::floatfield);
2. std::cout << nb << std::flush;
 
/* pour avoir un affichage du flux en hexa */
3. std::cout << std::hex <<"         " <<  (deb+cpt-1) << endl;
 
/* pour afficher en decimal */
4. std::cout <<  (int)(deb+cpt-1) << endl;
 
/* afficher un caractere a partir d'un int */
5. std::cout << (char)(deb+cpt+1) << endl;
 
/* afficher un caractere mais par opération de cast */
6. std::cout << "   " << char(deb+cpt-1) << std::flush;
q3 : j'ai deux trois comportement assez étrange, la ligne 3. me donne bien l'affichage en hexa, mais par contre si je veux afficher un entier en décimal par la suite (ligne4 par exemple), celui ci sort en hexa !!! (même s'il est précisé que je voulais un affichage en decimal!!!) j'en ai déduis que l'emploi d'une spécification de format en utilisant le principe de la ligne 3 formatais toute les sorties en hexadécimal alors que la ligne 4 ne ciblera que cette sortie la? (même s'il ne le fais pas..) élémentaire mon cher Watson ! ou j'suis vraiment pas capable d'aligner 2 lignes de codes sans raconter des conneries?

q4 : ligne 5 ou 6 question philosophique : cast ou pas cast?

Bon voila, j'ai laché une partie de mes aigreures passagères, provoqué par un prof qui a oublié le sens du mot pédagogie, si vous avez une ou deux info la dessus, ou un petit lien qui m'aurais échappé... un grand merci