[C++] Traitement des infos d'un buffer

Résolu/Fermé
Tsu - 27 mai 2008 à 16:15
 Tsu - 27 mai 2008 à 18:39
Bonjour,

Voilà, j'ai un soucis avec un buffer...
Je copie un fichier texte dedans pour pouvoir ensuite traiter les données...

La syntaxe doit ressembler à ça dans le fichier texte :
2 caracteres (qui sont à la base des entiers) - un espace - une chaine de caracteres - un espace...

... en sachant qu'après les deux premiers caractères, il peut y avoir autant d'espace suivis de chaines de caracteres qu'on veut...

Pour l'instant, j'ai une ptite fonction comme ça :


void readRule()
{
// variable qui contiendra l'intégralité du fichier
stringstream buffer;

// ouvrir le fichier "Rule.txt"
ifstream myfile ("C:\\Rule.txt");
// s'il n'y a pas d'erreur à l'ouverture, le copier dans un buffer
if (myfile.is_open())
{
// copier l'intégralité du fichier dans le buffer
buffer << myfile.rdbuf();
// fermer le fichier
myfile.close();
}

}

Mais après je sèche completement pour extraire les différentes informations...

Un coup de pouce serait vraiment le bienvenu... :)

1 réponse

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 mai 2008 à 16:28
https://en.cppreference.com/w/cpp/io/basic_stringstream
donc :
char c1=buffer.str()[0],c2=buffer.str()[1];
Ensuite, il faut extraire les différentes chaine de caractère :
for (i=3;i<buffer.str().size();++i)while(buffer.str()[i]!=' ')
chaine+=buffer.str()[i] etc.

Ou alors :

buffer>>c1>>c2>>chaine1>>chaine2...; //nombre de chaine à récuperer
il fait automatiquement la conversion d'après le type mis.
0
Merciii !!!

Ta réponse m'aide réellement... et rapidement en plus !
Merci beaucoup :D
0