OVH Cloud OVH Cloud

affichage formaté

17 réponses
Avatar
Christophe
bonjour
Ayant (eu) une petite habitude des SGBD et Basic, j'ai toujours pu accèder à
tous les points de l'écran.
Et là :-(( plus rien. Je me sens un peu manchot.
J'ai d'intéressants exercices mais basés certainement sur des turbo C++ sous
dos, faisant appel à la fonction gotoxy().
Comment la remplacant en mode console sous windows ?

note : je commence tout juste à étudier la classe point avec initialisation,
déplacement et affichage.

renote à l'attention de 'je ne sais plus qui' futur auteur : ça me parait un
super exemple pour l'étude.

merci d'avance

Christophe

10 réponses

1 2
Avatar
Fabien LE LEZ
On Thu, 18 Dec 2003 14:59:18 +0100, "Christophe"
wrote:

J'ai d'intéressants exercices mais basés certainement sur des turbo C++ sous
dos, faisant appel à la fonction gotoxy().
Comment la remplacant en mode console sous windows ?


Deux solutions :
- une relativement portable : Curses/Ncurses, qui m'a l'air
implémenté sur pas mal de plate-formes
- une réservée à Windows : utiliser l'API Win32. Totalement
hors-sujet ici, cf fr.comp.os.ms-windows.programmation (même si
stricto sensu, Curses est aussi hors-sujet ici)


--
;-)

Avatar
Christophe
"Fabien LE LEZ" a écrit >
wrote:

J'ai d'intéressants exercices mais basés certainement sur des turbo C++
sous


dos, faisant appel à la fonction gotoxy().
Comment la remplacant en mode console sous windows ?


Deux solutions :
- une relativement portable : Curses/Ncurses, qui m'a l'air
implémenté sur pas mal de plate-formes
- une réservée à Windows : utiliser l'API Win32. Totalement
hors-sujet ici, cf fr.comp.os.ms-windows.programmation (même si
stricto sensu, Curses est aussi hors-sujet ici)
;-)


Je rêve!!!
Comment faitent vous pour afficher un mot à tel endroit en C++ pur ?
J'ai du mal à croire que ce n'est pas possible. L'affichage est quand même
le principal moyen de communication entre ordinateur et l'utilisateur,
surtout depuis le développement des environnement graphiques.
J'aimerais bien resté en C++ pur...

Christophe

Puisque c'est comme ça, je crame ma bagnole et je reparts à pied tel l'homo
sapiens ;-))


Avatar
un.gabacho.sans.pourrier
"Christophe" writes:

Je rêve!!!
Comment faitent vous pour afficher un mot à tel endroit en C++ pur ?
J'ai du mal à croire que ce n'est pas possible. L'affichage est quand même
le principal moyen de communication entre ordinateur et l'utilisateur,
surtout depuis le développement des environnement graphiques.
J'aimerais bien resté en C++ pur...


La diversité des plates formes sur lesquelles on peut programmer en
C++ rend cela assez difficile (et pour tout dire peu souhaitable).

Il y a par contre des librairies graphiques qui existent sur un grand
nombre de plate-formes. Elles ne font pas partie du C++ pur mais tu
peux les utiliser en gardant une bonne portabilité.

D'autres que moi te conseilleront mieux. Cherche du côté de OpenGL, de
Tcl/Tk, De X11...

Avatar
Raphael TOSTO
"Christophe" a écrit dans le message de
news:3fe1c190$0$29092$

Je rêve!!!
Comment faitent vous pour afficher un mot à tel endroit en C++ pur ?


Le 'C++ pur' n'a pas prevu d'afficher de façon si précise. Cela est dévolu
aux bibliothèques fournies avec le système.


J'ai du mal à croire que ce n'est pas possible. L'affichage est quand
même

le principal moyen de communication entre ordinateur et l'utilisateur,
surtout depuis le développement des environnement graphiques.
J'aimerais bien resté en C++ pur...


Avatar
Martinez Jerome
Christophe wrote:

Je rêve!!!
Comment faitent vous pour afficher un mot à tel endroit en C++ pur ?
J'ai du mal à croire que ce n'est pas possible. L'affichage est quand même
le principal moyen de communication entre ordinateur et l'utilisateur,
surtout depuis le développement des environnement graphiques.


Ben voila, tu souleves le problemes : les IHM peuvent avoir tellement
des formes differentes... maintenant c'est meme plutot du graphique.
Avec une interface graphique, il n'y a aucun interet d'avoir une
fonction de repositionnement au caractere pret.
De plus, ton besoin n'est pas le besoin d'un autre dans 90% des cas :
personnelement, meme en interface texte je n'ai jamais eu besoin de ca.
Ca fait donc un cas tellement spécifique que si il était intégré a la
norme, d'autres choses pourraient l'etre aussi. Trop de choses.

J'aimerais bien resté en C++ pur...


Developpe sans cette fonction, je te promet qu'on s'en apsse très bien.
Ou passe en mode graphique, ca sera mieux que du texte que tu formate
dans tous les sens (mais sans C++ pur non plus, sauf que des API
multi-platefomres existent : ncurses, wxwindows...)

Avatar
Christophe
"Martinez Jerome" a écrit dans

De plus, ton besoin n'est pas le besoin d'un autre dans 90% des cas :
personnelement, meme en interface texte je n'ai jamais eu besoin de ca.
Ca fait donc un cas tellement spécifique que si il était intégré a la
norme, d'autres choses pourraient l'etre aussi. Trop de choses.


Je n'en doute pas

J'aimerais bien resté en C++ pur...


Developpe sans cette fonction, je te promet qu'on s'en apsse très bien.
Ou passe en mode graphique, ca sera mieux que du texte que tu formate
dans tous les sens (mais sans C++ pur non plus, sauf que des API
multi-platefomres existent : ncurses, wxwindows...)



Mais sans vouloir être indiscret, quelles sont les applications créées
aujourd'hui n'ayant 'in fine' pas interface graphique et à affichage quasi
séquentiel ?
Christophe


Avatar
Christophe de VIENNE
Christophe wrote:

Mais sans vouloir être indiscret, quelles sont les applications créées
aujourd'hui n'ayant 'in fine' pas interface graphique et à affichage quasi
séquentiel ?
Christophe




les compilateurs par exemple... ou n'importe quel programme tournant en
tâche de fond.

A+

Christophe

Avatar
Marc Boyer
Christophe wrote:
"Martinez Jerome" a écrit dans
Developpe sans cette fonction, je te promet qu'on s'en apsse très bien.
Ou passe en mode graphique, ca sera mieux que du texte que tu formate
dans tous les sens (mais sans C++ pur non plus, sauf que des API
multi-platefomres existent : ncurses, wxwindows...)


Mais sans vouloir être indiscret, quelles sont les applications créées
aujourd'hui n'ayant 'in fine' pas interface graphique et à affichage quasi
séquentiel ?


Celles qui tournent sur des
Console de jeu
Satellite
Routeur (encore que...)
Machine à laver

Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(


Avatar
Martinez Jerome
Christophe wrote:

Mais sans vouloir être indiscret, quelles sont les applications créées
aujourd'hui n'ayant 'in fine' pas interface graphique et à affichage quasi
séquentiel ?


La plupart des programme a interface texte n'utilisent pas d'afficahge
avec positionnement du texte (par exemple toutes les commandes en ligne
de Linux?). De la faible utilité le non besoin de normer ca. Plus le
fait que la plupart des interfaces texte ne supportent pas ca
(imprimante, terminal minimal etc... il n'y a pas que DOS dans la vie :) )

Esuite, pour les interfaces graphiques, c'est une autre histoire : il y
a tellement d'avancées technologiques, tellement d'interfaces
differentes, qu'il est impossible de standardiser dans une norme qui va
durer des années la chose. Pour cela, il y a wxwindwos, gtk, etc... qui
evoluent plus vite que ce que peut une norme. il est donc préférable
d'utiliser ces "ajouts" a la norme, et laisser les normes standardiser
ce qui est stable.
Sans compter que le C++ n'est pas seulement pour ce que tu connais,
c'est aussi pour plein de logiciel sans aucune interface homme machine
(c'est beaucoup plus de logiciels que tu peux penser), donc qui n'a
aucunement besoin de ce systeme.

Bref, tu penses que ton besoin est un besoin de beaucoups de monde, ce
qui n'est pas le cas en pratique.
Basic, les SGBD etc... sont spécialisé dans un domaine qui a besoin plus
de ce que tu as besoin. Le C++ n'est pas spécialisé.

Avatar
Alexandre
Mais sans vouloir être indiscret, quelles sont les applications créées
aujourd'hui n'ayant 'in fine' pas interface graphique et à affichage quasi
séquentiel ?
Christophe


Il y en a des kilos. N'importe quelle service windows par exemple, rien que
pour rester dans le monde PC/Windows. Une application pour un calculateur de
voiture. Etc...
Un langage comme C++ ne peut se permettre de supposer qu'il existe un écran
avec des pixels, etc...
Tu ne peux donc pas rester en C++ "pur".
Si tu veux etre le + abstrait possible, crée-toi une interface (une classe
abstraite C++) comme ceci, par exemple :

class iEcran
{
public:
void SetPixel(int x,int y)=0;
void Rectangle( int x1, int x2, int y1, int y2)=0;
etc...
};

dans tes programmes tu utilises pour "dessiner" une instance polymorphe de
cette interface (donc un pointeur sur iEcran ou une référence sur iEcran)
mais que tu initialises avec une classe dérivée, spécialisée pour ton
système, par exemple :
class EcranWin32 : public iEcran
{
HANDLE Hwnd;
public:
EcranWin32(HANDLE H):Hwnd(H){}
void SetPixel(int x,int y)
{
::HDC hdc = ::GetDC(Hwnd);
::SetPixel(hdc,x,y);
::ReleaseDC(hdc);
}
etc...
};

1 2