A: |
All printing functions from stdio.h are sensitive to
MoveTo command, so it is not hard to set print position
to anywhere. If you need just gotoxy, it is impossible for 4x6 font,
because it is proportional. But, for 6x8 and 8x10 fonts, it may be implemented
trivially:
#define gotoxy(x,y) MoveTo (6*x-6,8*y-8) // for 6x8 font
#define gotoxy(x,y) MoveTo (8*x-8,10*y-10) // for 8x10 font
Here I assumed that top-left corner is (1,1) as on PC. Note that you MUST NOT put a space
between gotoxy and left bracket (else the preprocessor will define an argument-less macro).
You can also define an universal gotoxy macro which will work regardless of current font
setting, using smart GNU C macros:
#define gotoxy(x,y) \
({short __f=2*FontGetSys(); MoveTo((4+__f)*(x-1),(6+__f)*(y-1));})
You will not be able to understand this if you are not familiar with
GNU extensions.
|