Ouvrir le fichier en écriture Écrire les données dans le fichier Fermer le fichier. Lire des données écrites dans un fichier

Documents pareils
TP : Gestion d une image au format PGM

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


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

COMPARAISONDESLANGAGESC, C++, JAVA ET

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Conventions d écriture et outils de mise au point

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Chap III : Les tableaux

UE Programmation Impérative Licence 2ème Année

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Informatique Générale

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Introduction à NetCDF

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

Introduction à la Programmation Parallèle: MPI

Représentation d un entier en base b

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

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

Cours 1: Java et les objets

Programmation Objet Java Correction

Programmation C. Apprendre à développer des programmes simples dans le langage C

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

La gestion des exceptions

SYSTÈME DE GESTION DE FICHIERS

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

V- Manipulations de nombres en binaire

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Introduction au pricing d option en finance

Les chaînes de caractères

Initiation au binaire

Algorithmique et programmation : les bases (VBA) Corrigé

PROJET ALGORITHMIQUE ET PROGRAMMATION II

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Algorithmique et Programmation, IMA

Cours 14 Les fichiers

Cours d Algorithmique et de Langage C v 3.0

Initiation. àl algorithmique et à la programmation. en C

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Conception de circuits numériques et architecture des ordinateurs

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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

Chapitre 10 Arithmétique réelle

KL5121. Pour activer des sorties en fonction de la position d'un codeur

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

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

TP Contraintes - Triggers

La gestion des disques

as Architecture des Systèmes d Information

Notions fondamentales du langage C# Version 1.0

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

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Annexe : La Programmation Informatique

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

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Chapitre VI- La validation de la composition.

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

C++ : PROGRAMMATION-OBJET

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Licence Sciences et Technologies Examen janvier 2010

L AUTOMATISME LE SIGNAL

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

GESTION DES FICHIERS C/UNIX

Entraînement au concours ACM-ICPC

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Programmer en JAVA. par Tama

Certificat Big Data - Master MAthématiques

Chapitre 1 : Introduction aux bases de données

Encryptions, compression et partitionnement des données

Configuration automatique

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

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

Initiation à JAVA et à la programmation objet.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Chapitre 10. Les interfaces Comparable et Comparator 1

ESPACE COLLABORATIF SHAREPOINT

Programmation sous QT

Création et Gestion des tables

Transcription:

Flux Fichiers Généralités Créer un fichier Ouvrir le fichier en écriture Écrire les données dans le fichier Fermer le fichier Lire des données écrites dans un fichier Ouvrir le fichier en lecture Lire les données à partir du fichier Fermer le fichier F. Cloppet POO Avancée M1 C++ 284

Flux Fichiers Généralités Deux types de fichiers Fichiers textes Lisibles par un éditeur de texte Fichiers binaires Copie bit à bit du contenu de la mémoire Non lisibles par un éditeur de texte Bibliothèque standard C++ fstream F. Cloppet POO Avancée M1 C++ 285

Flux Bibliothèque fstream Classe ofstream #include<fstream> Fichier ouvert en écriture créé par appel du constructeur de la classe Méthode is_open() renvoie true si le fichier a bien été ouvert Écriture dans le fichier avec l opérateur << Méthode close() : ferme le fichier ouvert Classe ifstream Fichier ouvert en lecture créé par appel du constructeur de la classe Méthode is_open() renvoie true si le fichier a bien été ouvert Lecture à partir du fichier avec l opérateur >> Méthode close() : ferme le fichier ouvert F. Cloppet POO Avancée M1 C++ 286

Flux Fichiers Fichier texte Constructeur de la classe ofstream ou ifstream avec un seul paramètre Le nom du fichier Utilisent les mêmes fonctions de formatage que cin et cout F. Cloppet POO Avancée M1 C++ 287

Flux Fichiers Fichier texte F. Cloppet POO Avancée M1 C++ 288

Flux Fichiers Fichier texte utilisent les mêmes fonctions de formatage que cin et cout F. Cloppet POO Avancée M1 C++ 289

Flux Fichiers texte Écrire à la suite d un fichier existant Ajout d un dun deuxième paramètre dans le constructeur : std::ios::app F. Cloppet POO Avancée M1 C++ 290

Flux Fichiers texte Lire à partir d un fichier F. Cloppet POO Avancée M1 C++ 291

Flux Fichiers texte Lecture ligne par ligne F. Cloppet POO Avancée M1 C++ 292

Flux Fichiers binaires données sont lues/écrites séquence d'octets par séquence d'octets On peut lire/écrire que les types de base (int, float,...) Opérations plus rapides qu avec un fichier texte Permet de lire des formats de fichiers binaires (TIF, PNG ) Ajout du paramètre a ios::out out ios::binary (resp ios::in ios::binary) dans le constructeur pour écriture (resp. lecture) la méthode write((char *)buffer, int nb) pour écrire nb octets dans le fichier méthode read((char *)buffer, int nb) pour lire nb octets du fichier F. Cloppet POO Avancée M1 C++ 293

Flux Fichiers binaires F. Cloppet POO Avancée M1 C++ 294

Flux Fichiers binaires F. Cloppet POO Avancée M1 C++ 295

Notions Complémentaires Les exceptions Définition Une exception est un signal qui indique que quelque chose d exceptionnel (comme une erreur) s est sest produit. Elle interrompt le flot d exécution normal du programme C est un objet instancié lors d un incident => une exception est levée Mécanisme simple et lisible Regroupement du code réservé au traitement des erreurs pas de «mélange» avec l algorithme Isoler les instructions susceptibles de provoquer des exceptions Prévoir un traitement d erreur sur ces instructions Possibilité de récupérer une erreur à plusieurs niveaux d une application (traitement ou propagation dans la pile des appels de méthodes) F. Cloppet POO Avancée M1 C++ 296

Les exceptions une fonction rencontre une erreur elle lance une exception la fonction courante est terminée immédiatement les fonctions appelantes sont aussi terminées jusqu'a trouver un morceau de code qui sache gérer l'exception si aucun bloc de code ne traite l'exception, le programme se termine F. Cloppet POO Avancée M1 C++ 297

Les exceptions Illustration de la propagation F. Cloppet POO Avancée M1 C++ 298

Les exceptions Les erreurs classiques à traiter avec des exceptions sont dépassement d'indices dans les tableaux dépassement de capacité le résultat d'un calcul est plus grand que le maximum représentable par la variable division par zéro allocation mémoire impossible manque de mémoire F. Cloppet POO Avancée M1 C++ 299

Les exceptions Il existe des types d erreur prédéfinies bad_alloc : problème d'allocation thrown by new on allocation failure bad_cast : problème de dynamic_cast ios_base::failure problème d'iostream bad_typeid problème de pointeur Vocabulaire Capturer ou attraper (catch) une exception permet de traiter les erreurs Lancer ou déclencher (throw) une exception consiste à signaler les erreurs mais à reporter son traitement F. Cloppet POO Avancée M1 C++ 300

Les exceptions F. Cloppet POO Avancée M1 C++ 301

Les exceptions On peut définir ses propres p classes exception Classe dérive de la classe exception de la librairie STL F. Cloppet POO Avancée M1 C++ 302

Les exceptions F. Cloppet POO Avancée M1 C++ 303

Les exceptions On peut définir ses propres classes «exception»- illustration (suite) F. Cloppet POO Avancée M1 C++ 304

Notions complémentaires Smart Pointeur = Pointeur intelligent Le pb des pointeurs Pour un new => un delete sinon fuite mémoire Comment gérer les delete dans un code complexe? F. Cloppet POO Avancée M1 C++ 305

Notions complémentaires Smart Pointeur = Pointeur intelligent dans la STL depuis le C++0x norme de 2011 Pas compatible avec les "anciens" compilateurs classe qui encapsule la notion de pointeur Offre une sémantique de plus haut niveau Possède un mécanisme qui gère la durée de vie des objets pointés Plusieurs types shared_ptr weak_ptr unique_ptr F. Cloppet POO Avancée M1 C++ 306

Smart Pointeur Shared_ptr Principe stockage du pointeur comptage des références grâce à un compteur interne +1 : création, affectation, copie -1 : destruction delete de la donnée lorsque le compteur = 0 F. Cloppet POO Avancée M1 C++ 307

Smart Pointeur Shared_ptr F. Cloppet POO Avancée M1 C++ 308

Smart Pointeur shared_ptr F. Cloppet POO Avancée M1 C++ 309