TurboC ++ graphics.h与conio.h的clreol()发生冲突

时间:2014-03-17 02:20:44

标签: c conflict turbo-c++

注意:这是TurboC ++所以请不要指望STL

我有这个简单的代码,没有其他graphics.h函数,而不是它的驱动程序的声明和调用。我的目标是:

  • 打印第一个字符串(较长的字符串)
  • 转到第一个字符串的坐标,清除字符串(使用 clreol()
  • 打印较短的第二个字符串。

但我宁愿在打印第二个字符串时得到此输出:

Shorter phrase.██████████████████████████████████████████████████████████████████

这是我的代码:

#include <stdio.h>
#include <conio.h>
#include <graphics.h>

int gdriver=DETECT, gmode;

void main(){
    clrscr();
    initgraph(&gdriver,&gmode,"C:\\TURBOC3\\BGI");

    printf("Longer phrase than next.");
    getch();
    gotoxy(1,1);
    clreol();
    printf("Shorter phrase.");
    getch();
}

当我删除initgraph()函数时,它运行正常,因此可能存在问题,但我当然需要它。

1 个答案:

答案 0 :(得分:1)

哈哈 - 来自石头的编码问题;)。谢谢你 - 它激活了一些美好的回忆。

我的猜测是你会遇到问题,因为你混合了BGI(图形)功能和“正常”文本输出。尝试用对相应BGI函数的调用替换文本输出调用(如果我没记错的话,这被称为outtextxy()或其他东西)。