J'ai le fichier .txt qui contient des données comme suit [12,25], [36,45] I.E Nombres sont placées entre crochets séparées par des virgules les unes des autres Je veux lire un tel fichier via le programme C ++ P>
J'ai mentionné sur String Toolkit disponible, spécifiquement une installation de regex peut être utilisée mais je ne suis pas capable de mettre en place une personne peut m'aider s'il vous plaît ?? p>
3 Réponses :
Est-ce que je serais correct pour supposer que ceux-ci sont coordonnées, si oui, avez-vous pensé à écrire un parseur court pour eux? Vous pouvez donc lire une liste de sommets? P>
Alternativement, si vous souhaitez vraiment descendre le chemin de la regex, vous voudrez peut-être examiner le téléchargement du boost a > Bibliothèque, Boost.regex travaille un rêve :) p>
Il suffit d'utiliser n'oublie pas que les fonctions CI / O sont valides C ++. < / p> p> scanf code> ou fscanf code> comme ceci:
#include <iostream>
#include <iterator>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool isSeparator(const char c){
return c == '[' || c == ']' || c == ',';
}
int main(){
const char filename[] = "data.txt";
ifstream fin(filename);
vector<int> v;
string buff;
while(getline(fin, buff)){
replace_if(buff.begin(), buff.end(), isSeparator, ' ');
istringstream sin(buff);
for(int n;sin >> n;){
v.push_back(n);
}
}
copy(v.begin(), v.end(), ostream_iterator<int>(cout,"\n"));
//for(int i=0;i<v.size();++i) cout << v[i] << endl;
}
Avez-vous écrit n'importe quel code jusqu'à présent?
Pourriez-vous rendre votre question un peu plus claire? C'est un peu déroutant en ce moment.
de fichier contiendra des nombres tels que [10,20], [15,35] ... Maintenant, comment puis-je obtenir 10 20 15 35 dans la matrice ... Je ne veux pas que la méthode normale comme le personnage de picture numérise jusqu'à la fin n tous Je connais une telle logique ce que je veux, c'est un code C ++ efficace en utilisant Strtk ... de préférence à l'aide de la fonctionnalité Regex dans Strtk
n'importe qui s'il vous plaît..stuck depuis la dernière heure
Vous n'avez pas besoin de regex pour faire cela, utilisez simplement l'opérateur de l'extracteur du flux.
strtok est techniquement c et non c ++