Salutations!
Mon programme est censé lire et chercher dans un fichier nommé donnees.txt .
Les données se présentent comme ca:
et voici mon code (qui va en faire vomir plus d'unSITE Reims
IP xxx.xxx.xxx.xxx
MASQUE xxx.xxx.xxx.xxx
PASSERELLE xxx.xxx.xxx.xxx
DNS xxx.xxx.xxx.xxx
WINS xxx.xxx.xxx.xxx
FIN 0) pour rechercher les données spécifiques à un site :
En gros,
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 cout<<"Nom du site voulu:"; cin>>nomsite; ifstream fb("C:/.../donnees.txt"); fb>>type>>valeur; if ( fb ) { while ( getline( fb, ligne ) ) { if(valeur==nomsite) { while ( getline( fb, ligne ) ) { if(type=="IP") { ip=valeur; } if(type=="MASQUE") { masque=valeur; } if(type=="PASSERELLE") { passerelle=valeur; } if(type=="DNS") { dns=valeur; } if(type=="WINS") { wins=valeur; } if(type=="FIN") { break; } fb>>type>>valeur; } } fb>>type>>valeur; } } fb.close();
-je demande le nom du site dont il faut extraire les données.
-J'ouvre le fichier.
-Je test si il existe.
-Je le lis ligne par ligne.
-Dès qu'il rencontre le bon nom de site, je réouvre une nouvelle lecture ligne par ligne a partir de la ou il sotcke pour chaque type sa valeur dans des variables différentes jusqu'a ce qu'il arrive au type FIN.
-ensuite je fini en fermant le fichier.
Le problème c'est qu'il n'arrive jamais à trouver l'IP!![]()
il passe du type SITE au type MASQUE sans trouver le type IP entre les deux alors qu'il est bien présent dans le fichier...![]()
C'est probablement dû au fait que je réouvre une lecture ligne par ligne, et il doit sauter une ligne mais je ne sais pas comment régler ce problème![]()
Merci d'avance à ceux qui auront pris le temps de lire et de répondre !
Edit: En gros si je fais unjuste apres le deuxième while, il me met :
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout<<type<<endl;
Donc il fait l'impasse sur l'IP, pour une raison mystérieuseSITE
MASQUE
PASSERELLE
DNS
WINS![]()
Partager