如何在C中使用setfillstyle()和textcolor()

时间:2017-10-25 06:30:41

标签: c terminal ncurses conio

我想在UBUNTU(终端)中使用setfillstyle()和textcolor()。

但我在互联网上发现它存放在conio.h库中,不能在UBUNTU中使用。

那我该怎么办?

4 个答案:

答案 0 :(得分:1)

今天在unixy终端上执行这些操作的事实上的方法是使用一些Curses libray,它在Ubuntu上由{GNU Project Ncurses library开发。

Google为“ncurses教程”开始使用。它与 conio.h 不同,所以只需从头开始学习。

答案 1 :(得分:1)

那是真的。 setfillstyletextcolor是旧的conio MS / DOS库的功能。它现在只能在Windows控制台中使用(除非你设法使用真正的MS / DOS或FreeDOS ......)。

如果你想在Linux终端窗口中使用色彩效果,你可以看一下Ubuntu中通常存在的curses,并允许创建可移植的程序。

答案 2 :(得分:0)

首先,控制一个"屏幕" (或者你想要调用它)在C的范围内 .C I / O(stdio.h)仅对输入和输出流进行操作。因此,您必须自己编写特定于平台的代码或使用库。

关于conio.h,正如其他答案已经说明的那样,这是一个过时的标题。它是为MS-DOS(Borland的AFAIK for TurboC产品)创建的,因此设计与BIOS例程提供的文本模式中的典型PC强烈耦合。虽然您可能会为MS-DOS以外的其他系统找到一些的实现,但我强烈建议您不要使用它。

现在用于控制控制台/终端的事实上的标准确实是curses,它最初出现在Unix系统上。它是商业系统的一部分,但存在各种系统的免费实现。使用curses,您的代码可以移植到许多系统,包括几乎所有* nix派生物以及Windows。

curses的两种实现非常普遍:

    来自GNU项目的
  • ncurses,它可以移植到许多* nix系统,最近也移植到Windows(我推荐它用于Linux,FreeBSD等)。

  • pdcurses也是可移植的,但重点是DOS和Windows(我建议用于Windows)

要了解如何使用cursesNCURSES Programming HOWTO是一个很好的资源。我个人建议在{HOWTO建议#include <curses.h>的任何地方#include <ncurses.h>,因此您的代码可以与其他curses实现一起使用而无需修改。

答案 3 :(得分:0)

根据建议, ncurses 是开始使用Ubuntu查看的常用位置。

根据this page

  

setfillstyle函数设置当前填充图案和填充颜色。

继续列出可用的填充样式:

enum fill_styles 
{ 
   EMPTY_FILL, 
   SOLID_FILL, 
   LINE_FILL, 
   LTSLASH_FILL, 
   SLASH_FILL,
   BKSLASH_FILL, 
   LTBKSLASH_FILL, 
   HATCH_FILL, 
   XHATCH_FILL, 
   INTERLEAVE_FILL,
   WIDE_DOT_FILL, 
   CLOSE_DOT_FILL, 
   USER_FILL 
};

没有便携式等效于填充模式(它取决于终端类型)。根据您的需要,<conio.h>用于着色全屏命令行应用程序。对于后者,您有tput(一个curses实用程序),可以设置前景色和/或背景色。

对于前者, ncurses 实现了X / Open 背景字符,可以在全屏应用程序中使用它来提供填充字符和/的组合或颜色。您可以使用背景字符模仿 conio 的填充样式(虽然我没有看到有人为这些创建相应Unicode值的表)。 EMPTY_FILL很简单:只是一个空格字符。

进一步阅读: