_gettextposition() Should Not Be Used with printf()

ID: Q39089

5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a | 1.00 1.50

MS-DOS                      | OS/2            | WINDOWS
kbprg

The information in this article applies to:

SUMMARY

When the graphic routines are being used in a program, they should be used for all output to the screen, including text output. Other C run-time functions for output should not be used.

If a C program uses the run-time function _gettextposition(), the function _outtext() should be used to output text to the screen. Using the function printf() causes overwriting of text or blank lines to be inserted on the video screen.

MORE INFORMATION

The following program results in unpredictable output:

#include <stdio.h>
#include <graph.h>

main() {
   struct rccoord rcoord;
   _clearscreen(_GCLEARSCREEN);
   printf("11\n");
   printf("22222222\n");
   printf("333333\n");
   printf("fourth line\n");
   printf("fifth line\n");

   rcoord=_gettextposition();

   printf("6666\n");
   printf("77777777\n");
}

The work around is use _outtext(), or a combination of sprintf() and _outtext() instead of printf().

Additional reference words: kbinf 5.10 6.00 6.00a 6.00ax 7.00 1.00 1.50 KBCategory: kbprg KBSubcategory: CRTIss Keywords : kb16bitonly

Last Reviewed: July 18, 1997