Bonjour a tous,
Je suis débutant en langage C-C++ bien que j'ai tout de même quelques notions. Dans le cadre d'un projet d'étude, j'ai pour mission réaliser un programme qui convertis des valeurs. Seulement avant de passer a la conversion je dois d'abord "sélectionner" les valeurs que j'aurai a convertir. Donc pour le moment j'ai toutes les valeurs dans un fichier txt comme ceci par exemple :
01 0m 12 01 ff 00
00 21 23 ff 01 87
p2 18 ff 10 87 54
12 ff 57 j7 15 09
ff h6 12 00 j4 22
En fait je cherche a effacer les valeurs "inutiles" puis sélectionner les 2 valeurs apres ff par exemple.
donc il faudra que je puisse garder uniquement 00 00 / 01 87 / 57 j7 et h6 12 pour les mettre dans des variables ou tableaux.
Vous remarquerez que les "ff" sont a la même 'distance' ce qui est le cas dans le 'vrai' fichier txt (qui fais près d'une centaine de Mo au passage).
Le seul code (bien maigre) que j'ai pour l'instant reussi a faire est le suivant
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 #include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream fichier("test.txt"); string ligne; while(!fichier.eof()) { while(getline(fichier,ligne)) { if(ligne.find("ff") == 0) { string value = ligne.substr(3, ligne.length()); cout<<"here it is "<<value<< endl; } } return 0; } }
il me renvoie ( "here it is : h6 12 00 j4 22" ). En fait j'arrive seulement a écrire un code qui détecte"ff" (si il est situé au début de la ligne) et qui me renvoie tout ce qu'il y a après (donc qui relève tout ce qui se situe 3 cases après "ff" grace a substr) .
Ce n'est bien sur pas ce que je souhaite au final mais je ne sais pas comment améliorer le code et quelles fonctions je devrais utiliser. Je suis un peu perdu.
Pourriez-vous s'il vous plait m'indiquer quelques pistes ?
Pour ne rien vous cacher je ne sais pas si il est mieux d'effectuer ce code en C ou C++ (bien que je preferai le faire en C++ puisque je dois ensuite travailler avec Qt).
Partager