linux里面的c语言怎样使用#include<graphics.h>
时间: 2023-09-15 12:21:04 浏览: 65
在 Linux 中,`graphics.h` 是不被支持的标准 C 库头文件,因此你需要安装和配置一个额外的图形库来使用它,例如 `libgraph`。以下是一些安装和配置步骤:
1. 安装 `libgraph` 库。你可以使用以下命令安装:
```
sudo apt-get install libgraph-dev
```
2. 将 `libgraph` 库的头文件添加到你的 C 代码中。你需要在代码中使用 `#include<graph.h>`,但是为了让编译器知道该头文件的位置,你需要将库的路径添加到编译器的搜索路径中。你可以使用以下命令来编译你的代码:
```
gcc yourprogram.c -lgraph
```
其中,`yourprogram.c` 是你的 C 代码文件名。 `-lgraph` 选项告诉编译器链接 `libgraph` 库。
3. 运行你的程序。你可以使用以下命令来运行你的程序:
```
./a.out
```
请注意,在使用 `graphics.h` 头文件时,你需要使用特定的函数和变量来绘制图形。这些函数和变量的详细信息可以在 `libgraph` 库的文档中找到。
相关问题
用c语言graphics.h和extgraph.h写一个在图形窗口的输入程序。当用户按键时,在图形窗口出现按下的键所代表的字符,并像图形界面的输入框一样自动向右递进,按下回车键结束输入,将用户输入的内容在终端窗口显示出来。并在此基础上,实现当前位置光标闪烁,并支持左右方向键和两个删除键。
以下是使用C语言graphics.h和extgraph.h实现在图形窗口的输入程序的代码:
```c
#include <graphics.h>
#include <extgraph.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 100
int main()
{
char input[MAX_LENGTH + 1] = { 0 }; // 用户输入的字符串
int length = 0; // 用户输入的字符串长度
int cursorPos = 0; // 光标位置
int blink = 1; // 光标闪烁标志位,1表示光标显示,0表示光标隐藏
initgraphics();
setbkcolor(WHITE);
cleardevice();
while (1) {
// 绘制用户输入的字符串
setcolor(BLACK);
settextjustify(LEFT_TEXT, TOP_TEXT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(10, 10, input);
// 绘制光标
if (blink) {
setcolor(BLACK);
line(cursorPos * 16 + 10, 30, cursorPos * 16 + 10, 50);
}
// 监听键盘事件
if (kbhit()) {
int ch = getch();
if (ch == 13) { // 回车键结束输入
printf("输入内容:%s\n", input);
break;
} else if (ch == 8) { // 退格键删除
if (cursorPos > 0) {
// 删除光标左侧的一个字符
for (int i = cursorPos - 1; i < length; i++) {
input[i] = input[i + 1];
}
length--;
cursorPos--;
}
} else if (ch == 127) { // 删除键删除
if (cursorPos < length) {
// 删除光标右侧的一个字符
for (int i = cursorPos; i < length; i++) {
input[i] = input[i + 1];
}
length--;
}
} else if (ch == 75) { // 左方向键
if (cursorPos > 0) {
cursorPos--;
}
} else if (ch == 77) { // 右方向键
if (cursorPos < length) {
cursorPos++;
}
} else if (ch >= 32 && ch <= 126 && length < MAX_LENGTH) { // 输入可见字符
// 在光标位置插入一个字符
for (int i = length; i > cursorPos; i--) {
input[i] = input[i - 1];
}
input[cursorPos] = ch;
length++;
cursorPos++;
}
}
// 光标闪烁
blink = !blink;
delay(500);
}
closegraph();
return 0;
}
```
该程序的主要逻辑是在`while`循环中监听键盘事件,并根据按键的不同执行相应的操作。用户输入的字符串存储在`input`数组中,光标位置存储在`cursorPos`变量中,光标的闪烁状态存储在`blink`变量中。
在绘制用户输入的字符串时,我们使用`outtextxy`函数按顺序逐个输出`input`数组中的字符,并控制其在窗口的位置。在绘制光标时,我们使用`line`函数画一条竖直线标识光标的位置。
在用户输入可见字符时,我们首先判断输入的字符是否在可见字符的 ASCII 码范围内,并且字符串长度是否超过了最大长度。如果满足条件,则在光标位置插入该字符,即将该字符插入到`input`数组中,并将数组后续的字符依次向后移动一个位置。
在用户按下退格键或删除键时,我们分别删除光标左侧或右侧的一个字符,并更新字符串长度和光标位置。在用户按下左方向键或右方向键时,我们分别将光标位置向左或向右移动一个位置。
最后,在光标闪烁时,我们每隔500毫秒将`blink`变量反转一次,从而实现光标的闪烁效果。
注意:本程序中使用了`conio.h`库中的`kbhit`和`getch`函数,这些函数只能在 Windows 系统上使用。如果在 Linux 系统上编译运行,需要使用相应的替代函数。
c语言做动图
要在C语言中实现动图,需要使用图形库来控制屏幕上的像素点。比较常用的图形库有:
1. Graphics.h:这是C语言中最常用的图形库之一,它提供了一些简单的绘图函数,如line、circle、rectangle等。但是它只适用于Windows操作系统。
2. SDL:这是一个跨平台的图形库,可以在Windows、Linux、Mac OS等操作系统上使用。它提供了更多的绘图函数和功能,可以实现更复杂的动画效果。
3. OpenGL:这是一个高性能的3D图形库,可以用于创建复杂的动画和游戏。
下面是一个使用Graphics.h绘制动图的示例代码:
```c
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
int x = 0, y = 0, i;
char ch;
while(1)
{
cleardevice(); //清除屏幕
//绘制动图
for(i = 0; i < 10; i++)
{
setcolor(i+1);
circle(x+i*20, y+i*10, 50);
}
//更新坐标
x += 10;
y += 5;
if(x > getmaxx())
x = 0;
if(y > getmaxy())
y = 0;
delay(100); //延时一段时间
if(kbhit()) //检测键盘是否有输入
{
ch = getch();
if(ch == 27) //按下ESC键退出
break;
}
}
closegraph();
return 0;
}
```
这个程序会在屏幕上绘制一个由10个圆组成的动图,圆的颜色会随着编号递增。每次更新坐标时,将整个屏幕清除,然后重新绘制动图。如果检测到按下ESC键,程序就会退出。