samedi 28 février 2009

[Truc C++] Lecture d'un fichier vers un vecteur et l'inverse

Le programme C++ suivant lit un fichier d'entiers et l'emmagasine dans un vecteur. Ensuite le contenu du vecteur est sauvegardé dans un autre fichier.
#include <iostream>
#include <vector>
#include <iterator>
#include <fstream>
using namespace std;

int main()
{
ifstream is("in.txt");
ofstream os("out.txt");

vector<int> v (istream_iterator<int>(is), (istream_iterator<int>()));
copy(v.begin(), v.end(), ostream_iterator<int>(os, "\n"));
return 0;
}

Le constructeur du vecteur appelé est celui qui prend deux itérateurs comme paramètres afin d'initialiser le vecteur, un de début et un de fin. Le premier itérateur correspond à un itérateur sur le fichier alors que le deuxième est un itérateur représentant une erreur de lecture par exemple la fin du fichier.

La fonction "copy" prend trois paramètres :
- Un itérateur de début de lecture
- Un itérateur de fin de lecture
- Un itérateur d'écriture

Finalement, "is" et "os" peuvent être respectivement remplacés par "cin" et "cout" afin de lire ou écrire sur la console au lieu d'un fichier.

Aucun commentaire:

Enregistrer un commentaire