【问题标题】:Coloured output in Turbo C++Turbo C++ 中的彩色输出
【发布时间】:2015-02-02 17:32:51
【问题描述】:

我的编译器是Turbo C++ v3.0 with DOS v5.0 emulated in DOSBox v0.74
我使用它是因为 Turbo C++ 是使用它的编译器 我的高中选择教授 C++ 编程语言。 有人强调我在编写我的期末项目时使用这个编译器。

我正在使用 Intel Core i5-3317U CPU @ 1.70GHz 运行 Windows 8.1(64 位)

为了热闹和向流行文化致敬, 我希望我的输出屏幕显示绿色文本。

以下是似乎有效的方法:

#include<iostream.h>
#include<conio.h>
void main(){
 clrscr();
 textcolor(2); // text set to green colour (conio.h function)
 cprintf("\n\t Hello World"); // cprintf from conio.h
 cout << "\n\t Hello World"; // cout from iostream.h
 getch();
}

其输出如下(屏幕已被修剪以节省空间)

根据 Turbo C++ 中的帮助部分,

cprintf() 将格式化的输出发送到屏幕上的文本窗口。

如您所见,cout 打印到屏幕上的文字不是绿色的,我的项目由大量的cincout 以及一些读写文件组成。

我想要的结果(虽然我还没有尝试过)很可能通过将我所有的cout &lt;&lt; "..."; 替换为cprintf("..."); 来获得 但是我已经写了很多 cout 语句,以至于很难编辑那么多代码。

cprintf 对我来说是一个新领域,我对如何 cprintf("\t"); 输出为o

所以,我不热衷于使用它。我不希望使用它,除非它是我唯一的选择。

cstdlib.hwindows.h 在 Turbo C++ 中不可用,因此我也无法使用它们的实用程序来获得我想要的东西。

最后,我想要的只是输出提示以亮绿色显示我couted 的文本。对我的代码进行最小的更改会很好。 我什至不介意必须更改我的模拟器或编译器或 shell 的某些设置来做到这一点。

非常感谢所有帮助。提前谢谢你=)

【问题讨论】:

  • 仅供参考,这门课程很可能弊大于利。
  • @chris:我知道,并且我保证在我完成学业的那一刻重新学习 C++。但就目前而言,我被困在使用比我更老的编译器并且编写的代码甚至连 cryptkeeper 都认为已经过时了。
  • 几十年来我都没有使用过 Turbo C++,但我记得它被广泛认为是“最好的”。我想知道他们的 iostreams 实现中是否有一种工具可以让人们执行类似 cout.color(0x0020ff) 之类的操作。类似于我们设置填充字符的方法: cout.fill('#');或字段宽度:cout.width(4);
  • 换个思路,你能在DOSBox中设置前景色吗?
  • @BradS。我进行了很多搜索,但我对这种 cout 方法没有任何线索。此外,我无法编辑 dosbox 实例的任何设置,因为我已将 turboc++ 和 dosbox 作为一个包下载。我在问题中添加了指向它的链接。

标签: c++ colors dos turbo-c++ dosbox


【解决方案1】:

啊,1990 年代的电话,他们想要他们的 QEMM 回来 :)

我能想到的一个解决方案是把它放在你的 CONFIG.SYS 中:

DEVICE=C:\DOS\ANSI.SYS

然后输出ANSI escape sequences

【讨论】:

【解决方案2】:

您可以使用 constream 库进行彩色文本输出:

#include <constrea.h>
int main()
{
    constream cout;
    cout << setclr(2);
    cout << "\n\t Hello, World!" << endl;
    getch();
    return 0;
}

我不知道如何处理制表符。

【讨论】:

    【解决方案3】:

    你只需要添加 clrscr(); textcolor() 之后的函数;它适用于 couts

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      相关资源
      最近更新 更多