我想在UBUNTU(终端)中使用setfillstyle()和textcolor()。
但我在互联网上发现它存放在conio.h库中,不能在UBUNTU中使用。
那我该怎么办?
答案 0 :(得分:1)
今天在unixy终端上执行这些操作的事实上的方法是使用一些Curses libray,它在Ubuntu上由{GNU Project Ncurses library开发。
Google为“ncurses教程”开始使用。它与 conio.h 不同,所以只需从头开始学习。
答案 1 :(得分:1)
那是真的。 setfillstyle
和textcolor
是旧的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
的两种实现非常普遍:
ncurses,它可以移植到许多* nix系统,最近也移植到Windows(我推荐它用于Linux,FreeBSD等)。
pdcurses也是可移植的,但重点是DOS和Windows(我建议用于Windows)
要了解如何使用curses
,NCURSES Programming HOWTO是一个很好的资源。我个人建议在{HOWTO建议#include <curses.h>
的任何地方#include <ncurses.h>
,因此您的代码可以与其他curses实现一起使用而无需修改。
答案 3 :(得分:0)
根据建议, ncurses 是开始使用Ubuntu查看的常用位置。
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
很简单:只是一个空格字符。
进一步阅读: