Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
fichier [2016/05/08 14:18] gbdivers |
fichier [2016/05/08 18:13] (Version actuelle) gbdivers |
||
---|---|---|---|
Ligne 42: | Ligne 42: | ||
Avec ''std::ofstream'', la fonction ''ls'' affiche : | Avec ''std::ofstream'', la fonction ''ls'' affiche : | ||
- | |||
<code> | <code> | ||
Ligne 329: | Ligne 328: | ||
En cas de probleme de lecture, n’hésitez pas a vérifier les formats utilisés en lecture et écriture. | En cas de probleme de lecture, n’hésitez pas a vérifier les formats utilisés en lecture et écriture. | ||
- | * lecture double dans un int | + | Il faut egalement faire attention a ne pas melanger les nombres entiers et reels. Si vous essayez de lire un fichier contenant une valeur reelle pour l'enregistrer dans une variable entiere, le comportement sera indetermine. |
+ | |||
+ | <code cpp main.cpp> | ||
+ | #include <iostream> | ||
+ | #include <fstream> | ||
+ | |||
+ | int main() { | ||
+ | { // creation du fichier | ||
+ | std::ofstream out { "test.txt" }; | ||
+ | out << 123.456e78 << std::endl; | ||
+ | } | ||
+ | |||
+ | std::ifstream in { "test.txt" }; | ||
+ | int i {}; | ||
+ | in >> i; | ||
+ | std::cout << i << std::endl; | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | affiche : | ||
+ | |||
+ | <code> | ||
+ | 1 | ||
+ | </code> | ||
+ | |||
+ | L'inverse ne pose pas de probleme, un nombre entier est une forme particuliere de nombre reel (pour lequel la partie decimale est nulle). | ||
==== Avec des chaines de caractères ==== | ==== Avec des chaines de caractères ==== | ||
+ | |||
+ | |||
+ | |||
+ | |||
probleme avec les espaces. Utilisation de getline | probleme avec les espaces. Utilisation de getline | ||
+ | |||
+ | |||
+ | |||
+ | |||
Ligne 413: | Ligne 447: | ||
===== Ecriture et lecture ===== | ===== Ecriture et lecture ===== | ||
- | En utilisant les opérateurs de flux ''<<'' pour l'écriture et ''>>'' pour la lecture. (attention a ce que le fichier soit ouvert avec le "bon" mode). | ||
- | |||
- | Par exemple, pour écrire une liste de valeur, séparé par un espace : | ||
- | |||
- | <code cpp> | ||
- | file << i << ' ' << j << ' ' << k << endl; | ||
- | </code> | ||
- | |||
- | Remarque : avec mode texte, les chiffres sont écrit les uns à la suite des autres. Si on écrit : | ||
- | |||
- | <code cpp> | ||
- | file << 1; | ||
- | file << 2; | ||
- | file << 3; | ||
- | </code> | ||
- | |||
- | cela produit dans le fichier "123". Si on essaie de lire, on lira qu'un seul nombre (123). Donc penser à ajouter des séparateurs. | ||
- | |||
- | Pour la lecture : | ||
- | |||
- | <code> | ||
- | file >> i; | ||
- | </code> | ||
Problème de séparation des caractères. De lecture d'une ligne | Problème de séparation des caractères. De lecture d'une ligne |