INF: _gettextposition() Should Not Be Used with printf()

ID Number: Q39089

5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a

MS-DOS | OS/2

Summary:

In Microsoft C versions 5.1, 6.0, 6.0a, 6.0ax, and C/C++ version 7.0,

when the C 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 <stdlib.h>

#include <graph.h>

main()

{

struct rccoord rcoord;

system("cls");

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: 5.10 6.00 6.00a 6.00ax 7.00