Bonjour,
J'ai un code C++ qui lit dans un fichier. Je sais exactement ce que je dois trouver et l'ordre, aussi, je parcours ligne par ligne, si je trouve bien "mon entier=", je lis la ligne dessous et j'affecte à mon entier la valeur lue ... etc ..
Cela fonctionne très bien mais le code est très redondant.
Etant débutant en C++, je n'ai pas réussi à le factoriser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 int monentier; double mondouble; char monchar[100] fichier.open("file.in", ios::in); fichierRead.open("file.in.read"); getline( fichier, ligne ) ; fichierRead<<ligne<<endl; cout << "#1 ligne >>"<< ligne <<"<<" <<endl; if ( ligne == " monentier= " ) { fichier>>monentier; getline( fichier, ligne ) ; fichierRead<<monentier<<endl; } // getline( fichier, ligne ) ; fichierRead<<ligne<<endl; cout << "#2 ligne >>"<< ligne <<"<<" <<endl; if ( ligne == " monchar= " ) { fichier>>monchar; getline( fichier, ligne ) ; fichierRead<<monchar<<endl; } ...
J'ai bien évidemment fait des recherches et trouvé quelques pistes du coté
des templates par exemple :
mais cela ne fonctionne pas, je pense que je ne suis pas très loin mais je n'arrive pas à faire fonctionner la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 template<typename T> void readAndWrite(T& cible, fichier, fichierRead ) { string ligne; getline( fichier, ligne ) ; fichierRead<<ligne<<endl; if ( ligne == pattern ) { fichier>>cible*; getline( fichier, ligne ) ; fichierRead<<cible*<<endl; } . }
Pourriez-vous m'aider s'il vous plait ?
Merci d'avance
Partager