在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`函数来实现横线。如果需要在图形模式下绘制更复杂的表格,可以考虑使用图形库函数