Salut à tous et bonne année!
Voila, j'ai un petit problème, petit car je pourrai passer par des moyens détourné. Je vous explique, j'ai un fichier configuration à charger, simple fichier texte listant un certain nombre de données dans un certain ordre. J'aimerais y ajouter des commentaires, précédé d'un '#' par exemple. Jusque là, il n'y a pas de soucis.
Oui, mais voila, je voudrai que ça soit complètement transparent à l'utilisation, je souhaiterai pouvoir faire des "file>>value" qui ignorerai automatiquement les commentaires. Pour cela, deux solutions me sont venus à l'esprit, l'encapsulation tout d'abord ou la dérivation ensuite.
la dérivation par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class CFileConfig : public std::ifstream { public: CFileConfig(const char * filename):std::ifstream(filename){}; ~CFileConfig(); }; /* plus loin */ CFileConfig file("file.txt"); int var1,var2; file>>var1>>var2;
Mon problème est donc surdéfinir l'opérateur >> afin qu'il garde la capacité d'écrire dans n'importe quel type de donnée tout en ignorant les lignes commencant par un #...
Merci d'avance pour vos pistes
Edit: Oula, je viens de me rendre compte que ce message risque de ne pas être au bon endroit…![]()
Partager