Informatique 2A Langage C 4ème séance

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Cours de C – Séance dexercices 12 Octobre Exercice 5 Idem quexercice 1 : lire une ligne au clavier Sans limitation de la longueur de la ligne (utilisez.
Introduction au Langage C,C++
Rappels C.
GEF 243B Programmation informatique appliquée
C.

Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Les pointeurs Manipulation d'adresses et de ce qui est contenu dans ces adresses Très important, fondamental même en C mauvaise réputation : 'dur à comprendre',
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
FLSI602 Génie Informatique et Réseaux
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Cours de C GTR 2003/ COURS DE PROGRAMMATION EN LANGAGE C ALBERT Arnauld.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
TRAITEMENT DE STRUCTURES
Les fichiers et les chaînes de caractères
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
FICHIERS.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les fichiers binaires en C++
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT 6800 Atelier en Technologies d’information
Les Fichiers.
8PRO100 Éléments de programmation Les types composés.
LANGAGE C LP A2I IUT St DIE
Procédures et fonctions
Les fichiers texte en C++
La librairie assert.h.
L’essentiel du langage C
Structures des données
2.1 - Historique Chapitre 2 : Introduction au langage C++
Les pointeurs L'opérateur &.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
1 FICHIERS. 2 Les Fichiers  Les "entrées-sorties conversationnelles" échangent des informations entre le programme et l'utilisateur.  Le terme de fichier.
SIF-1053 Architecture des ordinateurs
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
Ferhat nouis Cédric tanguy Eric abrial Gregory nazaire
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Entrées / Sorties.
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
8PRO100 Éléments de programmation Les pointeurs de caractères.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Langage de programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Exercices sur les pointeurs. lireCar/remettreCar Lorsque l’on lit caractère par caractère, on ne peut pas savoir qu’on a atteint un caractère avant de.
Algorithmique et langage C
Plan Des éléments de programmation en C Des éléments de programmation en C++ Des éléments de programmation en Java.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
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
1 Rappel et compléments de la programmation en langage C.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – COMMUNICATION INTER PROCESSUS : TUBES.
A quoi sert la programmation? - indispensable pour plusieurs métiers. - passion. But du cours: - suite du cours Prog. Imp. I - fichiers, pointeurs, modularité.
Accès aux fichiers en C.
Tableaux à plusieurs dimensions en langage C
QCM Pointeurs 2 / Q1 On considère la déclaration suivante : char *ptc ; ptc peut contenir : 1) des valeurs de variables de type caractère 2) des adresses.
QCM 5 / Q1 Soit le pointeur de fichier défini par FILE *fp ; on veut ouvrir le fichier " C:/Mesdocuments/essai.txt " en mode écriture. Quelles sont les.
Transcription de la présentation:

Informatique 2A 2009-2010 Langage C 4ème séance

Objectifs de la séance 4 Lecture/écriture dans des fichiers

Cela se fait en lisant et en écrivant dans des fichiers Un programme a en général besoin : - De lire des données (texte, nombres, images, …) - De sauvegarder des résultats (texte, nombres, images, …) Cela se fait en lisant et en écrivant dans des fichiers Pour manipuler un fichier, on utilise un pointeur : FILE *fichier fichier est appelé « flot de données » (dataflow). Ouverture d’un fichier: FILE *fopen (char *nom, char *mode) Cette fonction renvoie un pointeur sur le fichier ouvert Exemple : fichier = fopen(“C:/Data/fichier1.txt”,”r”);

Fichiers FILE *fopen (char *nom, char *mode) nom est une chaîne de caractères (tableau de caractères) contenant le nom du fichier ou bien un flot de données standard (stdin, …) mode désigne le type de traitement du flot de données - “r” (read) : lecture “w” (write) : écriture (le fichier est écrasé s’il existe) - “a” (append) : dans un fichier existant (à la fin) Fermeture d’un fichier: int fclose (FILE *fichier) Exemple : fclose(fichier); Il faut toujours fermer un fichier après l’avoir utilisé !

Fonctions de lecture / écriture fprintf(FILE *fichier,char *proto,…); Exemple : double a; fprintf(fichier,«Var = %lf\n»,a); Même syntaxe que printf ! printf(«Var = %lf\n»,a); Lecture : fscanf(FILE *fichier,char *proto,…); Exemple : double a; fscanf(fichier,«Var = %lf»,&a); Même syntaxe que scanf ! scanf(«Var = %lf»,&a);

Exemple - Ecriture include <stdio.h> void main() { double a,b; FILE *fichier; a=1.5;b=2.5; // Ouverture du fichier en ecriture fichier = fopen("C:/goudail/fichier.txt","w"); // Verifier que le fichier a bien été ouvert if (fichier != NULL) // Ecriture fprintf(fichier,"%lf\n",a); fprintf(fichier,"%lf\n",b); // Fermeture du fichier fclose(fichier); } return; }

Exemple - Lecture #include <stdio.h> void main() { int i; double tab[2], *p; FILE *fichier; // Ouverture du fichier en lecture fichier = fopen("C:/goudail/fichier.txt","r"); if (fichier != NULL) p=tab; // Initialisation du pointeur p for(i=0;i<2;i++) fscanf(fichier,"%lf",p++); fclose(fichier); } for(i=0;i<2;i++) printf("%lf\n",tab[i]); return;

Formats de fichiers Les fichiers précédents ont été écrits au format « texte » -> on a utilisé les fonctions fprintf et fscanf -> le code ASCII de chaque caractère est écrit dans le fichier Lorsqu’on a des données numériques, il est souvent plus efficace de les écrire sous forme « binaire ». Soit un nombre 1.345643355454E-18 Au format double, il occupe 8 octets Au format ASCII, il occupe 18 octets (1 octet par caractère) Les données sont repérées par un pointeur Ecriture d’un bloc de données en binaire int fwrite(void *source, int taille_type, int nombre, FILE *flot) Lecture d’un bloc de données en binaire int fread(void *dest, int taille_type, int nombre, FILE *flot)

Exemple – Fichier binaire #define DIM 10000 void main() { int i; double sum,tab1[DIM],tab2[DIM]; FILE *fichier; // Remplissage du tableau for(i=0;i<DIM;i++) tab1[i]=i*atan(1); // Ecriture du fichier au format binaire fichier = fopen("C:/goudail/fichier.bin","wb"); if (fichier != NULL) fwrite(tab1,sizeof(double),DIM,fichier); fclose(fichier); } // Lecture du fichier fichier = fopen("C:/goudail/fichier.bin","rb"); fread(tab2,sizeof(double),DIM,fichier); fclose(fichier); return;