c - Turbo C++ Graphics.h 与 conio.h clreol() 冲突

标签 c conflict turbo-c++ bgi

注意:这是 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() 函数时,它工作正常,因此可能存在问题,但我当然需要它。

最佳答案

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

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

关于c - Turbo C++ Graphics.h 与 conio.h clreol() 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445905/

相关文章:

c - 在 C 中管理 100 个项目的有效方法,开销很小

c - Pthreads:我的并行代码在达到一定数量后不会将线程传递到函数中

ios - NSMergeConflict(两个线程) - 设置合并策略无法解决

javascript - Prototype.js 与 jquery.js : How to solve this? 冲突

c - 如何在 Turbo C++ 中不按 Ctrl+Break 退出无限循环

c - gcc 如何处理 -Wtype-limits?

在无限 for 循环 C 程序中使用 getchar() 后,无法使用 fflush(stdin) 清除标准输入

javascript - 尽管调用了 NoConflict,jQuery Script src 声明仍抛出 JavaScript 错误

c++ - 如何关闭代码块中的所有自动更正/自动完成功能?

c++ - 使用 Turbo C++ 制作图形用户界面?