一起创业网-为互联网创业者服务

c程序下横怎么设置

在C程序中设置横线,通常有以下几种方法:

使用字符数组

可以创建一个字符数组,其中包含横线的字符,然后通过循环遍历数组并输出每个字符来绘制横线。例如:

```c

include

int main() {

char ch[] = "-";

int length = sizeof(ch) / sizeof(ch);

for (int i = 0; i < 10; i++) {

for (int j = 0; j < length; j++) {

putchar(ch[j]);

}

putchar('\n');

}

return 0;

}

```

这段代码会输出10行,每行包含一个横线。

使用printf函数

可以使用`printf`函数在指定位置输出横线。例如:

```c

include

int main() {

int rows = 5;

int cols = 10;

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

if (i == 0 || i == rows - 1 || j == 0 || j == cols - 1) {

printf("-");

} else {

printf(" ");

}

}

printf("\n");

}

return 0;

}

```

这段代码会输出一个5行10列的矩形,其中边界是横线,内部是空格。

在图形模式下使用点阵显示

如果需要在图形模式下绘制表格,可以使用点阵显示的方法。这通常需要使用图形库,如BIOS中断或图形库函数(如EasyX、SDL等)。例如,使用BIOS中断在TC环境下绘制表格:

```c

include

include

define WIDTH 80

define HEIGHT 25

void setPixel(int x, int y) {

outportb(0x40, 0x0C00 | (x << 8) | y);

}

void drawLine(int x1, int y1, int x2, int y2) {

int dx = abs(x2 - x1);

int dy = abs(y2 - y1);

int sx = x1 < x2 ? 1 : -1;

int sy = y1 < y2 ? 1 : -1;

int err = dx - dy;

while (x1 != x2 || y1 != y2) {

setPixel(x1, y1);

x1 += sx;

y1 += sy;

err += dy - dx;

if (err > 0) {

err -= dx;

y1 += sy;

}

}

setPixel(x1, y1);

}

int main() {

int table[HEIGHT][WIDTH] = {

{'+', '+', '+', '+', '+', '+', '+', '+', '+', '+'},

{'+', '-', '-', '-', '-', '-', '-', '-', '+', '+'},

{'+', '-', ' ', ' ', ' ', ' ', '-', '-', '+', '+'},

{'+', '-', ' ', ' ', ' ', ' ', '-', '-', '+', '+'},

{'+', '-', ' ', ' ', ' ', ' ', '-', '-', '+', '+'},

{'+', '-', '-', '-', '-', '-', '-', '-', '+', '+'},

{'+', '+', '+', '+', '+', '+', '+', '+', '+', '+'}

};

for (int i = 0; i < HEIGHT; i++) {

for (int j = 0; j < WIDTH; j++) {

if (table[i][j] == '+') {

drawLine(j, i, j + WIDTH - 1, i + HEIGHT - 1);

}

}

}

getchar();

return 0;

}

```

这段代码使用BIOS中断在TC环境下绘制一个简单的表格。

根据具体需求选择合适的方法即可。如果是在文本模式下,通常使用字符数组和`printf`函数来实现横线。如果需要在图形模式下绘制更复杂的表格,可以考虑使用图形库函数