[C++/Linux] utilisé les cmd shell dans prog

Résolu/Fermé
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 mai 2006 à 10:51
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 18 mai 2006 à 14:23
Bonjour,
Voila, j'ai programmé une calculatrice en C++, qui resemble un peu à Octave (ou bc pour ceux qui connaisent). C'est un programme console
Sous XP, une foi le prog lancer, je peux éditer la ligne : insérer, supprimer, etc...
et de plus, j'ai un genre d'historique, quand j'utilise la fleche haut, je rapel la précedente ligne.
Maintenant, je passe le prog sous Linux où il fonctionne correctement.
MAIS ! impossible d'éditer la ligne et d'avoir l'historique. des que j'utilise une touche comme les fleches ou delete, il me met des caractères immondes ('^[A' ou '[[^+' ).
Comment pouvoir editer les lignes?
Merci
A voir également:

6 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
9 mai 2006 à 12:23
personne ne sait?
Si le mesage est peu clair, je peux donner des précision.
Merci
-1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
16 mai 2006 à 12:48
Personne?
Est-ce un pb de librairie, d'option de compilation, ou impossible?
-1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 mai 2006 à 13:30
Salut,

Je ne sais pas si ce que je vais avancer sera compatible avec ton programme, mais peut être que ça pourra te mettre sur la piste...

Voilà, sous une version de Mandriva (10.0), j'avais installé un shell "ksh" depuis les sources dans un répertoire de mon "/home" et à chaque changement de shell (bash par défaut) pour passer en shelle ksh, ben j'avais les mêmes problèmes et après une recherche sur le Net, j'avais trouvé la parade : il suffisait de lancer la commande "set -o emacs" ou "set -o vi".
Bon dans ce cas il s'agit en fait d''initialiser un genre de variable.
Donc peut être qu'un simple appel similaire pour ton programme pourrait faire l'affaire... enfin j'espère ;-))
-1
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
16 mai 2006 à 17:48
salut,
Sous linux, pour pouvoir éditer la ligne de commande, faut intégrer la
lib readline : http://cnswww.cns.cwru.edu/~chet/readline/rltop.html
A+, crabs
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
18 mai 2006 à 13:03
merci pour vos réponses !
la méthode de jipicy ne fonctionne malheuresement pas.
Quand à celle de crabs, j'ai pas tout compris, notamment, quelle fichier inclure. Je vais me pencher sérieusement sur le lien en espérant en tirer quelques chose.
-1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
18 mai 2006 à 14:23
OK ! Super, merci crabs
En fait, il faut ajouter #include <readline.h> et <history.H>
et ensuite remplacer le getline(cin,don)
par un
don=readline(0);
et
add_history(don);
Voila, comme ça on récupère tout, et c'est très simple.
-1