Toon posts:

[C++] Variabele op scherm zetten in Graphicsmode

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kun je in C++ een variabele op het scherm zetten in Graphicsmode? Gaat dit met outtextxy.

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Afbeeldingslocatie: http://www.forum4u.f2s.com/images/smileys/rtfm.gif

Kijk, ik wil best behulpzaam zijn maar... voordat je gaat prutsen met graphics, zou ik eerst maar es de basix van C++ leren, want dit is echt zo rtfm^2... |:(

Maar goed, ik ben in een goede bui... Om een integer (alleen int of char dus) op het scherm te pleuren, doe je dit...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <graphics.h>
#include <ctype.h>

void main()
{
  int a_number = 0xbeef; // bijvoorbeeld...

  // je mag zelf ff graphics initializeren...

  char *num = new char[5];

  itoa(a_number, num, 10);
  outtextxy(num, 0, 0, 15);

  delete [] num;
}

Ik weet niet zeker of de outtextxy-regel klopt, ik heb dat een keer in m'n leven gebruikt en daarna nooit meer. Check ff de documentatie zou ik zeggen.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 14 december 2001 14:43 schreef Xenophage het volgende:
Ik weet niet zeker of de outtextxy-regel klopt, ik heb dat een keer in m'n leven gebruikt en daarna nooit meer. Check ff de documentatie zou ik zeggen.
* drm heeft hem wel vaker gebruikt :)

Dit lijkt verrekte veel op graphics-lib van Borland C++, en daarin zit een geweldige help-functie waar je alles (alles? ja alles) uit kan halen. paar hints:
• graphics.h
• initgraph ()
• outtextxy ()
• outtext ()

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Op vrijdag 14 december 2001 14:46 schreef drm het volgende:

[..]

* drm heeft hem wel vaker gebruikt :)
Lame! :)

Be a vent, gebruik Allegro! ;)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:14
Op vrijdag 14 december 2001 14:16 schreef zegers het volgende:
Hoe kun je in C++ een variabele op het scherm zetten in Graphicsmode? Gaat dit met outtextxy.
Als je Borland C++ gebruikt met de GDI library, denk ik dat je de TextOut() functie nodig hebt.

https://fgheysels.github.io/


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Xenophage:
Lame! :)
is nota bene 4 jaar geleden!!
Be a vent, gebruik Allegro! ;)
"Be a vent" :D lol quote van de week!

Never heard of Allegro. Heb ook al een hele tijd niks meer gedaan in C++...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

allegro sux0red :)

(is een game-achtige lib voor djgpp)


Be a vent, schrijf je eigen code :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 14 december 2001 16:12 schreef OiSyN het volgende:
allegro sux0red :)

(is een game-achtige lib voor djgpp)
ah dat ding. Ik vond die libs voor DJGPP over het algemeen maar kut.
Be a vent, schrijf je eigen code :P
:D die overtreft ;)

* drm calls quote of the week

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

allegro sux0red
Helemaal mee eens.
(is een game-achtige lib voor djgpp)
Nee, is cross-platform DOS/Windows/Unix.

Maar als je een library nodig hebt, gebruik dan SDL, http://www.libsdl.org/ . SDL is cool. SDL rulez.

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Allegro werkt best leuk en zit goed in elkaar, het is alleen zo bloated als de pest..

Maar als je echt een vent bent dan map je zelf de LFB :)

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:11
Op vrijdag 14 december 2001 14:43 schreef Xenophage het volgende:

Kijk, ik wil best behulpzaam zijn maar... voordat je gaat prutsen met graphics, zou ik eerst maar es de basix van C++ leren, want dit is echt zo rtfm^2... |:(
En vervolgens schrijft hij de volgende java++
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <graphics.h>
#include <ctype.h>

void main()
{
  int a_number = 0xbeef; // bijvoorbeeld...

  // je mag zelf ff graphics initializeren...

  char *num = new char[5];

  itoa(a_number, num, 10);
  outtextxy(num, 0, 0, 15);

  delete [] num;
}

Ik weet niet zeker of de outtextxy-regel klopt, ik heb dat een keer in m'n leven gebruikt en daarna nooit meer.
Of outtextxy() goed is, dat hangt af van de GUI library.
Ongeveer de rest is fout.

<ctype.h> is niet nodig.
main(){} returned een int geen void.
num moet je niet met new alloceren - dat is java. Gewoon op stack zetten
num is geen 5 bytes, maar dat hangt af van het aantal bits in een int. Er zitten CHAR_BITS*sizeof(int) bits in een int. Snelle truc: Deel't aantal bits door 3, rond af naar boven, is aantal digits.
itoa moet zijn sprintf of ostringstream.
delete[] is dus niet nodig.

:(

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

msalters heb jij een ik-ben-beter-want-ik-ken-de-C++-standaard-uit-mijn-hoofd-complex ofzo? :?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Het lijkt der wel op he :D

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

:)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

overigens het enige gezeik wat jij geeft wat ook daadwerkelijk klopt is
main(){} returned een int geen void.
de rest is misschien niet handig, maar fout is wat anders
en waarom is itoa in hemelsnaam fout??? (je kan hier niet gaan zeiken over: das niet ansi C, want dat is outtextxy ook niet)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Nog maar een voorbeeldje dan, uit de BC help gerip^H^H^Hkopieerdtq:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  #include <graphics.h>
  #include <stdlib.h>
  #include <stdio.h>
  #include <conio.h>

  int main(void)
  {
     /* request auto detection */
     int gdriver = DETECT, gmode, errorcode;
     int midx, midy;

     /* initialize graphics and local variables */
     initgraph(&gdriver, &gmode, "");

     /* read result of initialization */
     errorcode = graphresult();
     if (errorcode != grOk)  /* an error occurred */
     {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
     }

     midx = getmaxx() / 2;
     midy = getmaxy() / 2;

     /* output text at the center of the screen */
     /* Note: the C.P. doesn't get changed.     */
     outtextxy(midx, midy, "This is a test.");

     /* clean up */
     getch();
     closegraph();
     return 0;
  }
Maar als je echt een vent bent dan map je zelf de LFB
Hehe, ja je eigen LFB emulator maken met virtual memory ;)

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:11
Op zaterdag 15 december 2001 17:23 schreef OiSyN het volgende:
msalters heb jij een ik-ben-beter-want-ik-ken-de-C++-standaard-uit-mijn-hoofd-complex ofzo? :?
Teveel tijd besteed aan opruimen rotzooi van anderen. :( Dan krijg je vanzelf de houding "leer't nou goed, dan hoef je daarna minder te vergeten". Kijk, ik weet dat C++ lastig is, en dat niet alle docenten moeite doen om bij te blijven.

En nee, ik ken de standaard echt niet uit m'n hoofd - staat wel permanent in mn MRU menu. Ik probeer als ik commentaar geef er voor te zorgen dat er geen fouten in zitten. Er zijn weinig dingen zo verwarrend als tegenstrijdige dingen leren.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:11
Op zaterdag 15 december 2001 20:24 schreef OiSyN het volgende:
overigens het enige gezeik wat jij geeft wat ook daadwerkelijk klopt is
[..]

de rest is misschien niet handig, maar fout is wat anders
en waarom is itoa in hemelsnaam fout??? (je kan hier niet gaan zeiken over: das niet ansi C, want dat is outtextxy ook niet)
Ok, er is fout en fout. Fout als in doet niet wat het moet doen, en fout als in zou niet moeten worden gebruikt in de echte wereld.

Het eerste fout is het makkelijkste; het tweede leer je in de praktijk. Bijvoorbeeld het gebruik van new; dan moet je rekening houden met excepties/memory leaks/etc. Dat is op zich niet fout, alleen als je het gebruikt waarbij er een significant beter alternatief is. itoa heeft een vergelijkbaar probleem met buffer overflows. En om mezelf nu ook meteen te corrigeren: sprintf() moet eigenlijk snprintf() zijn, om dezelfde reden.

IHA moet je zoveel mogelijk standaard oplossingen gebruiken voor standaard problemen, omdat bij het later lezen van code niet-standaard constructies leiden tot onnodige verwarring. Het gebruik van new/delete voor lokaal geheugen is wel ISO C++, maar geen standaard oplossing.

outtextxy() is ook niet fout - er is geen ISO-standaard oplossing. Sterker nog, het is beter dan zelf het wiel uitvinden.

Dus in het algemeen is er een hierarchie van oplossigen van standaard problemen:

1) De ISO library
2) 3rd party libraries
3) Zelf doen.

En "het vak" is de meest standaard oplossig te kiezen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • SG
  • Registratie: Januari 2001
  • Laatst online: 13-09 07:59

SG

SG surft naar info hardewaren

Ik gebruik DirectDraw is wel snel maar ook wel veel werk en helaas niet zo flexible en platform afhankelijk.

Je moet dan zelf minsens één fontje maken

X399 Taichi; ThreadRipper 1950X; 32GB; VEGA 56; BenQ 32" 1440P | Gigbyte; Phenom X4 965; 8GB; Samsung 120hz 3D 27" | W2012SER2; i5 quadcore | Mac mini 2014 | ATV 4g | ATV 4K


Verwijderd

Gebruik SDL, dat is wel cross-platform en gebruikt DirectDraw in Windows.
Pagina: 1