Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
---
jupytext:
text_representation:
extension: .md
format_name: myst
format_version: 0.13
kernelspec:
display_name: C++17
language: C++17
name: xcpp17
rise:
auto_select: first
autolaunch: false
centered: false
controls: false
enable_chalkboard: true
height: 100%
margin: 0
maxScale: 1
minScale: 1
scroll: true
slideNumber: true
start_slideshow_at: selected
transition: none
width: 90%
---
+++ {"slideshow": {"slide_type": "slide"}}
# Fichiers, lecture, écriture
+++ {"slideshow": {"slide_type": "fragment"}}
## Qu’est-ce qu’un fichier?
Un **fichier informatique** est, au sens commun, une collection
d’informations numériques réunies sous un même **nom**, enregistrées sur
un support de stockage tel qu’un disque dur, un CD-ROM ou une bande
magnétique, et manipulées comme une unité.
Techniquement, un fichier est une **information numérique** constituée
d'une **séquence d’octets**, c'est-à-dire d'une séquence de nombres,
permettant des usages divers.
+++ {"slideshow": {"slide_type": "fragment"}}
En bref, c'est comme la mémoire, mais en **persistant**!
De même que le type d'une variable indique comment l'information
est encodée dans la mémoire, le **format du fichier** indique
comment l’information y est encodée.
+++ {"slideshow": {"slide_type": "fragment"}}
Voyons maintenant comment on peut écrire et lire dans un fichier.
+++ {"slideshow": {"slide_type": "slide"}}
## Écriture dans un fichier
+++ {"slideshow": {"slide_type": "fragment"}}
L'exemple suivant écrit `Noel 42` dans le fichier `bla.txt` :
```{code-cell}
---
slideshow:
slide_type: fragment
---
#include <fstream>
using namespace std;
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Déclaration
ofstream fichier;
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Ouverture
fichier.open("bla.txt");
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Écriture
fichier << "Noël " << 42 << endl;
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Fermeture
fichier.close();
```
+++ {"slideshow": {"slide_type": "slide"}}
:::{admonition} À retenir
Écrire dans un fichier se fait en **quatre étapes** :
1. Déclaration
2. Ouverture du fichier
3. Écriture
4. Fermeture du fichier
:::
+++ {"slideshow": {"slide_type": "slide"}}
## Lecture depuis un fichier
+++ {"slideshow": {"slide_type": "fragment"}}
Nous allons maintenant faire l'opération inverse : lire
les informations stockées dans `bla.txt` :
```{code-cell}
---
slideshow:
slide_type: fragment
---
#include <fstream>
using namespace std;
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Déclaration
ifstream fichier;
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Ouverture du fichier
fichier.open("bla.txt");
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
string s;
// Lecture
fichier >> s;
s
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
int i;
fichier >> i;
i
```
```{code-cell}
---
slideshow:
slide_type: fragment
---
// Fermeture du fichier
fichier.close();
```
+++ {"slideshow": {"slide_type": "slide"}}
:::{admonition} À retenir
De même que l'écriture dans un fichier, la lecture se fait en **quatre
étapes** :
1. Déclaration
2. Ouverture du fichier
3. Lecture
4. Fermeture du fichier
:::