为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

polytech_cpp2012_p4

2012-10-04 12页 pdf 82KB 12阅读

用户头像

is_382431

暂无简介

举报
polytech_cpp2012_p4 Flots d'entrFlots d'entréée / sortiee / sortie „„ C++ prC++ préévoit des entrvoit des entréées / sorties es / sorties àà l'aide des l'aide des objets, appelobjets, appeléés flots, vers trois ms flots, vers trois méédia diffdia difféérents:rents: –– la console / l...
polytech_cpp2012_p4
Flots d'entrFlots d'entréée / sortiee / sortie „„ C++ prC++ préévoit des entrvoit des entréées / sorties es / sorties àà l'aide des l'aide des objets, appelobjets, appeléés flots, vers trois ms flots, vers trois méédia diffdia difféérents:rents: –– la console / le clavier (standard)la console / le clavier (standard) „„ ddééclarations dans clarations dans <> –– les fichiersles fichiers „„ ddééclarations dans clarations dans <> –– la mla méémoire (buffers)moire (buffers) „„ ddééclarations dans clarations dans <> „„ Pour toute classe type flot de donnPour toute classe type flot de donnéées:es: –– l'entrl'entréée est faite par l'ope est faite par l'opéérateur polymorphe rateur polymorphe >>>> –– la sortie est faite par l'opla sortie est faite par l'opéérateur polymorphe rateur polymorphe <<<< I/O I/O StreamsStreams Flots d'entrFlots d'entréée / sortiee / sortie „„ Version obsolVersion obsolèète (VS 6.0): te (VS 6.0): IOStream LibraryIOStream Library –– accessible par inclusion :accessible par inclusion : ##includeinclude <> voidvoid main()main() { cout<<"Coucou !{ cout<<"Coucou !\\n"; }n"; } „„ Version ANSI/ISO : Version ANSI/ISO : Standard Template LibraryStandard Template Library –– accessible par inclusion :accessible par inclusion : ##includeinclude <> usingusing namespacenamespace stdstd;; voidvoid main()main() { cout<<"Coucou !{ cout<<"Coucou !\\n"; }n"; } I/O I/O StreamsStreams Architecture de classesArchitecture de classes de de IOStreamIOStream ios istream ostream iostreamistrstream ostrstreamifstream ofstream istream_withassign ostream_withassign fstream strstream stdiostream I/O I/O StreamsStreams Flots d'entrFlots d'entréée / sortiee / sortie „„ Les trois familles partagent une base virtuelle Les trois familles partagent une base virtuelle unique appelunique appeléée e iosios „„ Quatre flots standard dans Quatre flots standard dans <>:: –– coutcout pour les sorties vers la consolepour les sorties vers la console „„ instance globale de instance globale de ostream_withassignostream_withassign –– cincin pour les entrpour les entréées du clavieres du clavier „„ instance globale de instance globale de istream_withassignistream_withassign –– cerrcerr pour les messages d'erreur (=cout)pour les messages d'erreur (=cout) „„ instance globale de instance globale de ostream_withassignostream_withassign –– clogclog pour les messages d'activitpour les messages d'activitéé „„ instance globale de instance globale de ostream_withassignostream_withassign I/O I/O StreamsStreams Flots d'entrFlots d'entréée / sortiee / sortie „„ Les opLes opéérateurs rateurs <<<< et et >>>> sont surchargsont surchargéés pour s pour tous les types natifs (tous les types natifs (charchar, , shortshort, , intint, , longlong etc.)etc.) istreamistream& & istreamistream::::operatoroperator>>(type_de_base& variable) >>(type_de_base& variable) {/* ... */}{/* ... */} ostreamostream& & ostreamostream::::operatoroperator<<(type_de_base variable) <<(type_de_base variable) {/* ... */}{/* ... */} „„ Manipulateurs :Manipulateurs : –– ils s'insils s'insèèrent comme les variables et modifient le rent comme les variables et modifient le comportement des fluxcomportement des flux –– pour les manipulateurs avec parampour les manipulateurs avec paramèètre il faut inclure tre il faut inclure iomanip.hiomanip.h ou ou iomanipiomanip I/O I/O StreamsStreams Flots d'entrFlots d'entréée / sortiee / sortie Manipulateur Sens Compatibilité Signification oct E/S IOStream, STL affichage / lecture octale dec E/S IOStream, STL affichage / lecture décimale hex E/S IOStream, STL affichage / lecture hexadécimale flush S IOStream, STL vide le buffer de sortie endl S IOStream, STL insère un saut de ligne et vide le buffer ends S IOStream, STL insère un caractère nul ('\0') setbase(int base) E/S STL change la base (seulement entre 8, 10 et 16) setprecision(int nb) E/S IOStream, STL définit le nombre de chiffres après la virgule setw(int nbcar) E/S IOStream, STL définit la taille du champ suivant setfill(int car) E/S IOStream, STL définit le caractère de remplissage (par défaut ' ') setiosflags(long f) E/S IOStream, STL modifications avancées de toutes les options resetiosflags(long f) E/S IOStream, STL restauration par défaut de toutes les options I/O I/O StreamsStreams Flags (Flags (fmtflagsfmtflags) pour ) pour [[rere]]setiosflagssetiosflags()() I/O I/O StreamsStreams affichage praffichage prééfixe base (0x ou 0)fixe base (0x ou 0)showbaseshowbase affichage affichage boolbool comme "comme "truetrue/false"/false"boolalphaboolalpha base 10, 16, 8base 10, 16, 8decdec / / hexhex / / octoct affichage du "+" si positifaffichage du "+" si positifshowposshowpos affichage virguleaffichage virguleshowpointshowpoint alignement alignement àà droitedroiterightright alignement alignement àà gauchegaucheleftleft format scientifiqueformat scientifiquescientificscientific virgule fixevirgule fixefixedfixed „„ PlongPlongéés dans le souss dans le sous--espace espace ios_baseios_base :: Pourquoi les flots d'E/S ?Pourquoi les flots d'E/S ? „„ Plus sPlus sûûr visr vis--àà--vis des fautes de codage :vis des fautes de codage : voidvoid main()main() {{ intint i1, i2;i1, i2; double d1;double d1; // double erreur a l'ex// double erreur a l'exéécution !!!cution !!! scanfscanf("%d%("%d%d%lfd%lf", &i1, &d1, i2);", &i1, &d1, i2); // appel automatique du bon op// appel automatique du bon opéérateurrateur cincin >> i1 >> d1 >> i2;>> i1 >> d1 >> i2; }} „„ (Presque) indispensables dans les (Presque) indispensables dans les templatestemplates „„ Il ne faut jamais mIl ne faut jamais méélanger les fonctions de langer les fonctions de stdio.hstdio.h avec les flots de avec les flots de iostreamiostream [.h] [.h] !! I/O I/O StreamsStreams Extensions auxExtensions aux nouvelles classesnouvelles classes „„ Extension Extension àà n'importe quel objet (surcharge par n'importe quel objet (surcharge par fonction car opfonction car opéérande droit) :rande droit) : class class CCercleCCercle {{ floatfloat x, y, r;x, y, r; friendfriend ostreamostream& & operatoroperator<<(<<(ostreamostream& os, & os, constconst CCercleCCercle& c);& c); };}; ostreamostream& & operatoroperator<<(<<(ostreamostream& os, & os, constconst CCercleCCercle& c)& c) {{ return os<<"Cercle de rayon "<> ##includeinclude <> ##includeinclude <> ##includeinclude <> usingusing namespacenamespace stdstd;; voidvoid main()main() {{ CCercleCCercle c(1.0f, 3.0f, 4.0f);c(1.0f, 3.0f, 4.0f); cout << c;cout << c; fstreamfstream fsfs("cercle.txt",("cercle.txt",iosios::out);::out); fsfs << c;<< c; }} I/O I/O StreamsStreams bibliothbibliothèèque classique que classique IOStreamIOStream (obsol(obsolèète sauf VS 6.0)te sauf VS 6.0) bibliothbibliothèèque STLque STL
/
本文档为【polytech_cpp2012_p4】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索