Bonjour,
Mon problème est le suivant, je souhaite lire un fichier texte ligne par ligne et mettre les valeurs dans un vector.
Jusqu'ici pas de problème, sachant que le fichier ressemble à cela:
test.txt:
Je lis de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 0 0.0013 0.0023 0.0033 ...
Et pourtant en affichant le vector j'obtiens:
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 std::ifstream stream; std::string line; stream.open("test.txt",std::ios::in); if(!stream.is_open()) { std::cout <<"\t\t ---> File doesn't exist !"; } i = 0; while(std::getline(stream, line)) { std::istringstream currentLineStream(line); currentLineStream >> val; vect[i] = val; i++; } stream.close();
En fait je me suis aperçu que le problème venait du fichier texte qui est issu d'un copié-collé d'une colonne excel, ainsi je pense qu'il n y a pas de "\n" à la fin de chaque ligne du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 0 0 0 0 ...
Car si je change le fichier test.txt en :
0084
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1.51 0.0013 0.0023 0.0033 ...
J'obtiens:
Comment je pourrais faire soit pour extraire correctement la colonne depuis excel, soit formatter le fichier texte pour pouvoir le lire ligne par ligne?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1.51 0 0 0 ...
Merci de votre aide.
EDIT: désolé, en fait c'est une grosse erreur de ma part, j'ai pas vérifié que c'était des "." au lieu de ",", en fait le fichier texte était plutôt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 0 0,0013 0,0023 0,0033 ...
En plus j'aurai dû capter car wc -l me renvoyait le bon nombre de ligne![]()
![]()
Désolé encore.
Post à supprimer par un modérateur qui passerait par là.
Partager