Remplacer entrée/sortie par un string

Fermé
sebastien61 Messages postés 495 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 28 septembre 2010 - 25 sept. 2008 à 15:37
sebastien61 Messages postés 495 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 28 septembre 2010 - 26 sept. 2008 à 11:34
Bonjour,

Mon probleme est le suivant : J'utilise une libairie (ANTLR) qui s'utiliser de la facon suivante :
./main < entreeClavier. le code du main est la suivant :
		TagsLexer lexer(std::cin);
		TokenBuffer buffer(lexer);
		TagsParser parser(buffer);

Seulement je souhaiterai utiliser cette librairie sans avoir besoin d'écrire un fichier temporaire et de le lire & de faire la liaison a l'aide d'un script python (par exemple). Je souhaiterai utliser directement dans mon programme les TagsLexer & TokenBuffer & TagsParser .
Seulement voilà, je ne vois pas comment "remplacer le cin par un simple string sans impliquer de modification dans le code de la librairie. J'ai la possibilité de modifier les classes TagsLexer et TagsParser et de les recompiler sans probleme.

Est-ce que quelqu'un pourrait m'éclairer svp ?

Merci d'avance.
A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 sept. 2008 à 16:11
tu peux peut être tenter d'utiliser les flux de string ( https://en.cppreference.com/w/cpp/io/basic_stringstream ) à la place de std::cin (mais je doute que ça fonctionne car le buffer doit être gérer différemment).
Sinon, à la place de cin, tu fourni un flux sur un fichier que tu remplis dans ton programme principal.
Peut être en utilisant une fonction similaire à pipe() en C pour créer le fichier ( http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/pipe.2.html ).
J'ai déjà eu des problèmes similaire, j'ai mis du temps à les résoudre. Bonne chance.
0
sebastien61 Messages postés 495 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 28 septembre 2010 59
26 sept. 2008 à 11:34
Dac, je te remercie, je vais tester ça.
0