1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.

Slides:



Advertisements
Présentations similaires
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Advertisements

Introduction à la Programmation Orientée Objet H.GATI.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
Cours de Langage C Les structures
Informatique 2A Langage C 4ème séance
Interactivité et Lingo Interactivité - spécifier le déroulement en fonction des actions de l’usager Ex: Déroulement si l’usager clique Choix dans une liste.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
1 Programmation en C++ IO en C++/SL. 2 Sortie à l’écran Exemple: #include int main () { std::cout
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Cours 4 data frames. Modes ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logiqueSérie temporelle ts OuiNumérique,caractère,complexe.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
1 Bonnes Pratiques ● Indentation ● Présentation ● Initialisation des variables ● Conditions ● Gestion d'erreurs ● Conventions.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Cours 08 SYSTÈME DE FICHIERS
Concepts pour le contrôle de flux
UE2 - M22 Licence acoustique
Programmation en C++ Standard Library
JAVA.
Programmation en C++ Héritage
I- ANALYSE DU BESOIN / Plan
LES TABLEAUX EN JAVA.
Nombres réels Représentation et traitement des informations
Information, Calcul, Communication
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Détection des erreurs.
Programmation en C++ IO en C++/SL
Algorithmique demander jeu du pendu.
Ajouter le code dans une page html
Accès aux fichiers en C.
Représentation de l'information en binaire:
L’Instruction de Test Alternatif
Généralité sur les bases de données
Programmation en C++ Fonctions
Bases de programmation en Python
Principes de programmation (suite)
Tableaux à plusieurs dimensions en langage C
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
Python for beginners Qu'est ce que Python
Cyber-Sphinx Séance 2.
Codification et Représentation de l’information
Programmation en C++ IO en C++/SL
Programmation en C++ Classes
Les flux en C++ Les flux d’entrées sorties Les flux standards.
Programmation en C++ Fonctions
Programmation en C++ C++ de base
Programmation Android Bases De Données, SQL-lite
Introduction à Internet
Formation sur les bases de données relationnelles.
Programmation Android Première application Android
Apprendre le clavier Révision : les touches Mode d’emploi
Révision du format des données
Clavier-Souris-Texte – Niveau 1
Assembleur, Compilateur et Éditeur de Liens
Comment faire une belle présentation avec le logiciel
B.Shishedjiev - Informatique
Programmation procédurale Introduction en JavaScript
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Catherine Cyrot - bibliothèques numériques - Cours 5
Chapitre 3: Les scriptes
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
PROGRAMMATION ET ENSEIGNEMENT
PROGRAMMATION ET ENSEIGNEMENT
Le langage C# : Partie 1.
Jérôme CUTRONA PHP objet Jérôme CUTRONA 08:30:34 Programmation Web
Exploitation de vos données
Python Nicolas THIBAULT
Les données structurées et leur traitement
Transcription de la présentation:

1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers

2 Librairie Standard (SL) ● Les opérations d'entrée/sortie sont définies dans la bibliothèque standard du C++ (SL) ● La bibliothèque standard – Fait partie du langage – Tout le code est contenu dans les fichiers ‘header’, pas de librairies à linker – Il faut inclure les 'headers' qu'on veut utiliser – Tous les types/objets se trouvent dans le namespace std #include int main() { // on peut se servir des // objets/fonctions définis dans // return 0; } définition des objets/fonctions pour IO

3 Les Types, Objets pour IO (Flots) ● La bibliothèque standard définit des types et des objets spécialement destinés pour IO ● Le types de base : std::istream, std::ostream – std::istream : définit des objets qu'on peut utiliser pour l'entrée (input) – std::ostream : définit des objets qu'on peut utiliser pour la sortie (output) ● Objets global de flots (stream) : std::cin, std::cout, std::cerr – Ils sont déjà déclarés, et alors disponibles pour leur utilisation, on n'a pas besoin de créer leur instance nous-même – std::cin : le flot standard pour l'entrée; de type std::istream – std::cout : le flot standard pour sortie a l'écran; de type std::ostream – std::cerr : le flot standard pour la sortie des erreurs à l'écran; de type std::ostream

4 Les Opérateurs > ● Opérateurs de flots : > – Effectuent l'opération d'entrée/sortie – Il signifie « envoie vers » ● L'exemple de sortie à l'écran : ● On peut enchaîner des opérations: est équivalent à std::cout << "Bonjour"; L’objet de flot L'opérateur L'objet chaîne (string) envoyé vers l'écran std::cout << "Bonjour"; std::cout << std::endl; std::cout << "Bonjour" << std::endl;

5 Sortie à l'écran #include int main () { int i = 1; float f = 2.3; std::string s = "abcd"; std::cout << " i=" << i << " f=" << f << " s=" << s << std::endl; return 0; } 'Header' de SL pour I/O L'opérateur << est intelligent : il s’adapte au type de l’objet placé à sa droite ● On utilise le flot std::cout et l’opérateur << > exo.exe i=1 f=2.3 s=abcd

6 Entrée du clavier #include int main () { int i; float f; std::string s; std::cin >> i >> f >> s; std::cout << " i=" << i << " f=" << f << " s=" << s << std::endl; return 0; } 'Header' de SL pour I/O Les entrées en cascade sont séparées par tous les caractères de séparation : espace, tabulation, CR ● On utilise le flot std::cin et l’opérateur >> > exo.exe 1 2 Blabla i=1 f=2 s=Blabla

7... Entrée du clavier #include int main () { std::string s; std::getline(std::cin, s); std::cout << “Lit: “ << s << std::endl; std::getline(std::cin, s); std::cout << “Lit: “ << s << std::endl; std::getline(std::cin, s); std::cout << “Lit: “ << s << std::endl; //... return 0; } 'Header' de SL pour I/O On lit la ligne entière, même si elle contient des séparateurs (espace, tab), jusqu'au caractère CR ; Il faut analyser soi-même les lignes ● On utilise le flot std::cin et la fonction std::getline > exo.exe 1 Lit: 1 Un texte Lit: Un texte Un autre texte Lit: Un autre texte

8 Les fichiers ● Les types : std::ifstream, std::ofstream – définissent des objets qu'on peut utiliser pour l'entrée d'un fichier (ifstream) et la la sortie vers un fichier (ofstream) – Ils sont de la même famille que std::istream, std::ostream, et donc les objets de ce type peuvent être manipulés de même façon ● par des opérateurs: > ● Ils sont définis dans le 'header' ● Il n'existe pas d'objets globaux des flots de fichiers (comme std::cin et std::cout), il faut les définir nous même avant utilisation : std::ifstream f1("input.txt"); L'objet de flot de l'entrée du fichier input.txt std::ofstream f2("output.txt"); L'objet de flot de la sortie vers le fichier output.txt On choisit nous même les noms de nos objets flots

9... Les fichiers ● L'opération d'ouverture du fichier peut échouer – Si le fichier d'entrée n'existe pas, si on n'a pas le droit d'écriture dans le répertoire pour le fichier de sortie,... – Il faut tester le résultat d'ouverture: ● L'opération d'entrée du fichier peut échouer – Si nous sommes arrivées a la fin du fichier et il n'y plus des données à l ire – Il est préférable de le tester avant chaque opération d'entrée: if (! f1.is_open() { std::cerr << "Cannot open file"); exit(1); } if ( ! f1.eof() ) f1 >>... ;

10 La sortie dans un fichier #include int main () { int i = 1; float f = 2.3; std::string s = "abcd"; std::ofstream flot("fichier.txt"); if ( ! flot.is_open() ) { std::cerr << "Fichier n'est pas ouvert !!!" << std::endl; return 1; } flot << i << " " << f << " " << s << std::endl; return 0; } > exo.exe > more fichier.txt abcd

11 L'entrée d'un fichier #include int main () { int i; float f; std::string s; std::ifstream flot("fichier.txt"); if ( ! flot.is_open() ) { std::cerr << "Fichier n'est pas ouvert !!!" << std::endl; return 1; } if ( ! flot.eof() ) flot >> i; if ( ! flot.eof() ) flot >> f; if ( ! flot.eof() ) flot >> s; std::cout << " i=" << i << " f=" << f << " s=" << s << std::endl; return 0; } > exo.exe i=1 f=2.3 s=abcd

12 Les manipulateurs ● Les objets spéciaux qui injectent des modifications de comportement sur les flots; – endl – ends – ws – dec – hex – fixed – scientific – setw(val) – setprecision(val) – left – right –... – Insérer un caractère « new line » dans le flot – Insérer un caractère de fin de string dans le flot – Lire et ignore les séparateurs (« white-spaces ») – Écrire et lire en format décimal (défaut) – Écrire et lire en format hexadécimal – Utiliser la notation décimale (en virgule fixe) – Utiliser la notation scientifique (avec exposant) – Régler la largeur de champ I/O pour val – Régler val pour la nouvelle valeur pour la précision – Ajuster la valeur à gauche – Ajuster la valeur à droite std::cout << std::hex << mon_numero << std::endl; manipulateurs