Les flux en C++ Les flux d entrées sorties Les flux standards Les opérations d entrées sorties. Langage orienté objet C++ 1/19.

Documents pareils
Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

TP : Gestion d une image au format PGM

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Cours de C/C++ par la pratique. Hugues Talbot

Programmation système I Les entrées/sorties

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Programmation C++ (débutant)/instructions for, while et do...while

1.6- Génération de nombres aléatoires

Rappels Entrées -Sorties

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation en C/C++

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction au pricing d option en finance

INFO-F-105 Language de programmation I Séance VI

Département Automatisation et Informatisation Année Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

Claude Delannoy. 3 e édition C++

Le langage C. Séance n 4

Cours d Algorithmique et de Langage C v 3.0

Programme Compte bancaire (code)

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

et Programmation Objet

Avertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE

Programmation impérative


Compléments de documentation Scilab : affichage de texte et formatage de nombres

TD3: tableaux avancées, première classe et chaînes

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Chap III : Les tableaux

LE LANGAGE C++ ENAC 1997 A. DANCEL

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C

Programmation stochastique

Cours 14 Les fichiers

Bases de programmation. Cours 5. Structurer les données

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours d initiation à la programmation en C++ Johann Cuenin

Introduction à l héritage en C++

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Représentation d un entier en base b

Cours 1: Java et les objets

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Java Licence Professionnelle CISII,

Programmation système en C/C++

Une introduction à Java

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Le langage C++ (partie I)

Cours de Système : Gestion de Fichiers

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

C++ : PROGRAMMATION-OBJET

Chapitre VI- La validation de la composition.

COMPARAISONDESLANGAGESC, C++, JAVA ET

Plan du cours. Historique du langage Nouveautés de Java 7

Chapitre 2 Devine mon nombre!

Les fichiers. Chapitre 4

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Didacticiel Bases de programmation en C++

Approche Contract First

Algorithmique et Programmation, IMA

Premiers Pas en Programmation Objet : les Classes et les Objets

CHAPITRE V. Recherche et tri

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Structure d un programme

Plan Pédagogique du cours

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

I. Introduction aux fonctions : les fonctions standards

Flux de données Lecture/Ecriture Fichiers

Programmation en langage C

Introduction à C++ et à wxwidgets

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Cours 6 : Tubes anonymes et nommés

Présentation du langage et premières fonctions

Programmation système de commandes en C

Utilitaires méconnus de StrataFrame

PROJET ALGORITHMIQUE ET PROGRAMMATION II

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

1 Lecture de fichiers

Recherche dans un tableau

V- Manipulations de nombres en binaire

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ACTIVITÉ DE PROGRAMMATION

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

Outils pour la pratique

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Génie Logiciel avec Ada. 4 février 2013

Les chaînes de caractères

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Chapitre 1 : La gestion dynamique de la mémoire

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Travaux Dirigés n 1 : chaînes de caractères

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

GESTION DES FICHIERS C/UNIX

Programmation Internet en Java

Architecture des ordinateurs

Transcription:

Les flux en C++ Les flux d entrées sorties Les flux standards Les opérations d entrées sorties 1/19

Les flux de sorties Programme en écriture Flux de données Destination Un flux de sortie représente un canal de communication entre un programme «écrivain» et un destinataire 2/19

Les flux d entrées Source Flux de données Programme en lecture Un flux en entrée représente un canal de communication entre une source et un programme «lecteur». 3/19

Les flux standards flux C++ cin cout cerr clog description descripteur de fichier en entrée descripteur de fichier en sortie descripteur de fichier en sortie d erreur non tamponné descripteur de fichier en sortie d erreur tamponnée 4/19

L opérateur de sortie surchargé << #include <iostream> using namespace std; int main(void) { int i = 12; // écriture d une chaîne cout << "Voici la valeur d'un entier :\n"; cout << 45; // Écriture d'un entier } cout << i << " et "<< i+1; return 0; Indiquez l'affichage correspondant 5/19

L opérateur d entrée surchargé >> #include <iostream> using namespace std; int main(void) { string ch; int i; // lecture d une chaîne cin >> ch ; // lecture d un entier cin >> i; // lecture d'un entier return 0; } Saisissez une chaîne puis un entier et Indiquez l'affichage correspondant. Faites l'exercice 15 page 27 6/19

Lecture d'une ligne (1) Méthode getline de la classe istream basic_istream<elem, Tr>& getline( char_type *_Str, streamsize _Count, char_type _Delim); Ex : char c[10]; cin.getline( &c[0], 5, '2' ); 7/19

Lecture d'une ligne (2) Méthode getline de la classe string : istream & getline( istream& istream, string& xstring, const char cfin= '\n' ); Ex : string s1; cout << "entrez une sequence (utilisez <.> pour terminer): "; getline(cin,s1, '.'); Dans quels cas va t on utiliser l'une ou l'autre de ces méthodes? 8/19

Les opérateurs d entrées sorties le type des données est automatiquement pris en compte par les opérateurs << et >> ils travaillent par référence (on ne risque plus d'omettre l'opérateur & dans scanf) ; ils sont simples d'emploi. 9/19

Les flux chaînes Ils héritent de stringstream Istringstream pour les flux d'entrée Ostringstream pour les flux de sortie Manipule les chaînes comme des flux Remplace sprintf et sscanf 10/19

Les flux chaînes Exemple : std::string input getline(cin, input); // Interprète la ligne lue : istringstream is(input); int i; double d; string s; is >> i >> d; is >> s; Donnez un exemple de saisie valide pour cet exemple. Que se passe-t-il si le premier élément n'est pas un entier? 11/19

Le formatage des flux de sortie Manipulateur endl flush setw(int) left setfill(ch ar_type) Boolalpha Fonction Envoie un caractère de retour à la ligne sur le flux et appelle la méthode flush. Vide le tampon utilisé par le flux par un appel à la méthode flush. Permet de spécifier la largeur minimale du champ dans lequel la donnée suivante sera écrite à la prochaine opération d'écriture sur le flux. Aligne les résultats à gauche. Permet de spécifier le caractère de remplissage à utiliser lorsque la largeur des champs est inférieure à la largeur minimale spécifiée dans les options de formatage. Affiche un bolléen sous la forme vrai/faux Remarque : certains de ces manipulateurs sont déclarés dans iomanip 12/19

Le formatage des flux de sortie int main(void) { cout << boolalpha << true << endl; cout << hex << 57 << endl; cout << dec << 57 << endl; cout << setfill('*') << setw(15) << 3.141592 << endl; cout << left << setw(15) << 3.141592 << endl; } Indiquez l'affichage correspondant avec le formatage Faites l'exercice 16 page 28 13/19

lecture et d'écriture de flux vers un fichier Lecture Ouvrir un flux Tant qu il y a des informations Lire information Fin tant que informations Fermer le flux Ecriture Ouvrir un flux Tant qu il y a des informations Ecrire information Fin tant que informations Fermer le flux 14/19

Associer un flux à un fichier en entrée Instancier la classe ifstream : Ifstream fichent ; Ouvrir le flux selon le mode ici par défaut fichent.open( fich.txt ) ; Utilisation du flux string val ; fichent >> val ; Fichier à inclure #include <fstream> 15/19

Associer un flux à un fichier en sortie Instancier la classe ofstream : ofstream fichsort ; Ouvrir le flux selon le mode // en mode ajout fichsort.open( fich.txt, ios::out ios::ate) ; //Utilisation du flux string val = flux en ajout ; fichsort << val ; 16/19

Les entrées sorties sur fichier ex int main(void) { // Lit les données : int i; double d, e; cout << «fournissez un entier, un réel, un autre réel : "; cin >> i >> d >> e; ofstream f("fichier.txt"); if (f.is_open()) { f << "Les données lues sont : " << i << " " << d << " " << e << endl; f.close(); } return 0; } Indiquez le résultat de ce code 17/19

Lecture et écriture de données binaires Écrit ou lit des données à partir d un tableau de caractères Permet de compresser les données L opération d écriture : write const char Rouge[] = {033, '[', '3', '1', 'm'}; cout.write(rouge, sizeof(rouge)); L opération de lecture : read char tab[20]; cin.read(tab, 20); 18/19

Classes et Opérateurs de flux << et >> On doit pouvoir lire ou écrire les données d'une classe de cette manière : cout << unarticle ;// unarticle instance de Article C'est la sérialisation Pour que l'opérateur fonctionne avec des flux sur fichier ou sur les entrées sorties standard, il faut les définir pour les types ostream et istream Définissez les opérateur << et >> pour la classe Article 19/19