90

Lily
:
Ca n'est pas évident de revenir en arrière

Ben ça dépend de ce que cause ton imprimante wink, mais a priori tant que tu n'as pas fini une page tu peux revenir en arrière

Il faut un moteur bidirectionnel pour ça, trop compliqué cheeky
(bon par contre ça n'imprime rien tant que tu n'as pas fini une page hein ).

confus
Ceci dit je ne parlais pas de revenir en arrière, seulement d'écrire à des coordonnées précises : ça ça ne pose pas de problème wink

Euh c'est encore pire, non? grin
Et les caractères d'échappement, rien ne t'empêche de les utiliser de toute façon en espérant que ta sortie standard est un terminal qui les comprendra, effectivement, mais bon...

Oui, je ne sais pas exactement pourquoi ça n'est pas inclus dans la libc standard. Peut-être parce que ça impliquait plein de fonctions en plus (largeur du terminal, hauteur...)

PpHd> j'ose à peine imaginer le débit de la diode tongue

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

91

Ah bah non, tant qu'à faire il faut supposer bourrinement que le terminal fait 80x25, on va pas s'embêter avec des cas particuliers cheeky

Euh sinon en fait j'ai compris, tu penses à une imprimante à jet d'encre ? je pensais à une imprimante laser moi... qui construit une image de la page en RAM et n'imprime effectivement que quand tu lui dis que la page est terminée happy
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

92

Je ne trouve pas de focntions, toutes celles qui sont dans conio bug ou ne focntionne pas et aucune ne fait ce que je veux.

Voilà ce que je recherche:

Lorsque j'affiche un texte avec printf ou cout, le pointeur de texte ce met après ce que j'ai affiché, or mois je voudrais revenir en arrière et afficher par dessus.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

93

Tu envoies des backspaces (\b, ASCII 8).
Si tu veux revenir tout au début de la ligne, utilise carriage return (\r, ASCII 13).
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

94

Sally> je pensais même à une bonne vieille imprimante à aiguille (faut se remettre dans le contexte cheeky)
Et heureusement que stdio ne suppose pas que le terminal est en 80x25, sinon les progs ANSI seraient peu portables sur TI (oui, je sais, c'est déjà le cas à cause de la RAM happy)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

95

Pollux: Ben parfois c'est pratique pour debugguer.

96

Oui, alors tu peux utiliser ncurses & co (un truc pas portable, quoi). Si on commence à mettre des trucs moyennement portables dans le standard, ça incite à les utiliser même quand il n'y en a pas vraiment besoin...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

97

geogeo
: Je ne trouve pas de focntions, toutes celles qui sont dans conio bug ou ne focntionne pas et aucune ne fait ce que je veux.

Tu utilises quoi comme compilateur? MinGW? Si c'est le cas, essaye ce conio-là: http://cvs.sourceforge.net/viewcvs.py/dev-cpp/V5/source/conio/.

Sinon, il y a une alternative: pdcurses (une implémentation de curses pour entre autres Windows et DOS). http://pdcurses.sourceforge.net/. C'est plus portable que conio, même s'il existe une implémentation de conio qui utilise les curses (linux-conio (http://www.funet.fi/pub/Linux/lib/), que tu devrais d'ailleurs pouvoir utiliser avec pdcurses et MinGW dans le pire des cas).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

98

Pollux
: Oui, alors tu peux utiliser ncurses & co (un truc pas portable, quoi). Si on commence à mettre des trucs moyennement portables dans le standard, ça incite à les utiliser même quand il n'y en a pas vraiment besoin...

Au contraire, curses (ncurses, pdcurses etc.) est très portable. Au moins autant que conio.h (qui était DOS-only au départ).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

99

OK j'utilise DevC++ mais je ne pense pas utiliser les fonctionnalitées de MinGW. Merci pour les liens je vais regarder ça. wink
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

100

geogeo
: OK j'utilise DevC++ mais je ne pense pas utiliser les fonctionnalitées de MinGW.

Euh si, Dev-C++, c'est MinGW, avec une IDE en plus. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

101

Ceci dit, si tu ne veux rien faire de plus compliqué que revenir en arrière sur la même ligne, \b et \r marchent et y a pas plus portable (c'est dans le standard ASCII)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

102

Ça marche si on a un terminal ANSI. Les terminaux Windows sont "stupides" par défaut, parce que l'implémentation des codes ANSI de M$ a des trous de sécurité dans tous les sens. Bref, je ne suis pas sûr que \r fasse ce qu'il est censé faire.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

103

\r marche parfaitement sous Windows roll

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

104

Kevin > le standard ANSI c'est pour les séquences d'échappement, mais là c'est des caractères de contrôle, c'est différent je pense (et beaucoup plus portable).
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

105

ok donc \r c'est plus simple.
Mais j'ai jamais une doc mentionner ça sur celle que j'ai bref.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

106

clrscr() n est en effet pas une fonction appartenant au C ANSI standart, bien qu elle soit presente dans certain header, en particulier dans conio.h ( pour Borland -DOS- ) par contre il existe des sequences d echappement permettant d effacer l ecran:

#define my_clrscr() printf("\033[H\033[J") // ( ou quelque chose d approchant )

pour ceux etant sous linux, il existe un header ncruses.h qui doit aussi contenir clrscr()
pour d autre sequence d echappement ( gotoxy, couleur,... ) : http://www.april.org/groupes/doc/termi/termi.txt

mobi38
Le monde se separe en 10 categories de gens : ceux qui connaissent le binaire et ceux qui ne le connaissent pas.

107

Ok merci beaucoups. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

108

Les séquences d'échappement ne marchent pas sous Windows avec les règlages par défaut! Et ils changent aussi selon les terminaux Linux utilisés (bon, peut-être pas celle-là, mais en général smile). curses (ncurses, pdcurses, ...) est là pour ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

109

J'ai un petit problème je comprend pas pourquoi mon programme est si lent que ça, il faut regarder la routine LZW_Compress.

http://perso.wanadoo.fr/tisofts/divers/LZW.cpp

Si vous pouvais m'éclairer sur ce sujet ça serait sympa, surtout que les sources sont loin d'être complexe.

A savoir que mon DICO fait 8192 et MAX_STR 255 le reste c'est pas trop important à savoir je pense.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

110

C'est bon corrigé. smile

Par contre je me perd avec les headers .h...

J'ai mon programme principal qui appel LZW.h, dedans ce trouve une déclaration de variable. LZW.h est aussi appelé par LZW.cpp qui modifie cette variable ainsi que main.cpp qui appel bien sûr LZW.h.
Le problème c'est que le compilateur me renvoye une erreur comme quoi il y a plusieurs définitions de ma variable! (multiple definition of xxxx)
Comment corriger ce problème et donc modifier à partir de n'importe quel fichier cpp appellant LZW.h la variable voulue déclarée dans LZW.h?

Merci d'avance. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

111

N'inclut pas le header plusieurs fois.
Fais par exemple un main.cpp qui contient #include "LZW.h", puis tes fichiers .cpp.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

112

ok je vois.

[EDIT] euh pas vraiment en faite. sad

Dans mon LZW.h j'ai des défintiions qui sont utilisé dans LZW.cpp, donc si j'inclus que LZW.h dans main, le compilateur me signale qu'il ne trouve pas les définitions voulues dans LZW.cpp .sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

113

Si j'ai bien compris le problème, c'est très simple. Il suffit d'empêcher d'inclure plusieurs fois le même header avec le préprocesseur.
Donc tout tes headers devraient avoir cette forme: (pour un header qui s'appelle exemple.h)
#ifndef EXEMPLE_H /* Tu peux mettre le nom que tu veux mais prendre le nom du header est une bonne idée */
#  define EXEMPLE_H

/* Tu mets toutes tes déclarations ici */

#endif
De cette manière tu n'auras jamais plus d'une déclaration de chaque variable/fonction.
Ensuite le header tu l'inclues dans tous les fichiers C où tu en as besoin, il ne sera inclus qu'une seule fois par compilation, donc pas de déclarations multiples.
avatar
;)

114

Si j'ai bien compris le problème, c'est très simple. Il suffit d'empêcher d'inclure plusieurs fois le même header avec le préprocesseur.
Donc tout tes headers devraient avoir cette forme: (pour un header qui s'appelle exemple.h)
#ifndef EXEMPLE_H /* Tu peux mettre le nom que tu veux mais prendre le nom du header est une bonne idée */
#  define EXEMPLE_H

/* Tu mets toutes tes déclarations ici qui ne seront lues par le compilateur que lors du premier "passage" puisque EXEMPLE_H sera défini après */

#endif
De cette manière tu n'auras jamais plus d'une déclaration de chaque variable/fonction.
Ensuite le header tu l'inclues dans tous les fichiers C où tu en as besoin, il ne sera inclus qu'une seule fois par compilation, donc pas de déclarations multiples.
avatar
;)

115

BiHi> Oui mais mais moi j'ai un autre problème dans le genre:
exemple :
class Truc{
  ...
  void fonctionChiante1(Chose c);
}

class Chose{
  ...
  void fonctionChiante2(Truc t);
}


et la même avec le ifndef ca passera pas sad
avatar

116

C'est dans 2 headers différents?
Je crois qu'il suffit de déclarer la classe avant pour que le compilateur puisse savoir ce dont tu parles. Ca donnerait:

class Chose;

class Truc{
  ...
  void fonctionChiante1(Chose c);
}

class Truc;

class Chose{
  ...
  void fonctionChiante2(Truc t);
}

avatar
;)

117

Au pire, définir des namespaces.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

118

Ah ok pas pensé au ifdef... merci encore. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

119

namespaces? c'est quoi aujuste car j'ai ça dans tous mes headers.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

120

Un truc bien/nul du C++.
Chaque classe appartient à un namespace. Si t'as deux classes Moteur, tu définis les espaces de nom Bateau et Voiture,
comme ça t'aura pas de conflit entre les deux classes. ENsuite tu dis dans lequel tu parle (donc si tu es en train de parler de
bateaux ou de voitures) avec namespace bateau par exemple.
Et si tu es dans le namespace Bateau tu peux praler d'un moteur de voiture par voiture.Moteur.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.