j'ai fichier .txt
avec du texte comme celui-ci à l'intérieur (ce qui est juste un fragment):lecture de données multiples de chaîne, séparés par des caractères à l'aide sstream
...
[332, 605]-[332, 592], srednica: 13
[324, 593]-[332, 605], srednica: 14.4222
[323, 594]-[332, 605], srednica: 14.2127
[323, 594]-[331, 606], srednica: 14.4222
[324, 593]-[324, 607], srednica: 14
[323, 594]-[323, 607], srednica: 13
[319, 596]-[319, 607], srednica: 11
[320, 595]-[320, 607], srednica: 12
...
Ce que je dois à est d'obtenir un 4 premiers chiffres de chaque ligne et les stocker en entiers.
J'ai essayé smth comme ceci:
ifstream file("punkty_srednice.txt");
string line;
int ax, ay, bx, by;
while(getline(file, line)) {
stringstream s(line);
string tmp;
s >> tmp >> ax >> tmp >> ay >> tmp >> bx >> tmp >> by >> tmp;
cout << ax << " " << ay << " " << bx << " " << by << endl;
}
sortie (juste une partie de celui-ci):
...
506 506 -858993460 -858993460
503 503 -858993460 -858993460
495 503 -858993460 -858993460
497 503 -858993460 -858993460
500 497 -858993460 -858993460
492 503 -858993460 -858993460
...
Comme u un voir il y a quelques numéros étranges comme -858993460
I fait d'autres essayer en supprimant tmp
et aller tout droit comme ça:
s >> ax >> ay >> bx >> by;
mais la sortie ne contient que des numéros de déchets comme -858993460
Comment puis-je faire face?
Vous êtes complètement à droite! Maintenant, j'ai réalisé pourquoi je reçois 2 bonnes valeurs et 2 poubelles. Je ne peux pas trouver un bon exemple de STD :: Transformer donc j'ai remplacé étape par étape ''[' ']' '-' ','' – ilovkatie
@ user3804906 Suivez les liens dans ma réponse. :) –