作为标题。有什么方法可以做到这一点?假设我想在屏幕中央打印“Hello World”。
答案 0 :(得分:1)
您可以使用SetConsoleCursorPosition功能。获取控制台窗口的宽度和高度,然后调用它。
COORD coord;
coord.X = width / 2;
coord.Y = height / 2;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
答案 1 :(得分:1)
您需要知道将弦线居中所需的空间有多宽;你需要知道字符串有多长。您编写了适当数量的空格,字符串和换行符。
#include <stdio.h>
int main(void)
{
int width = 80;
char str[] = "Hello world";
int length = sizeof(str) - 1; // Discount the terminal '\0'
int pad = (length >= width) ? 0 : (width - length) / 2;
printf("%*.*s%s\n", pad, pad, " ", str);
return(0);
}
详尽的测试程序(最大宽度为80):
#include <stdio.h>
#include <string.h>
int main(void)
{
int width = 80;
char str[81];
for (int i = 1; i <= width; i++)
{
memset(str, 'a', i);
str[i] = '\0';
int length = i;
int pad = (length >= width) ? 0 : (width - length) / 2;
printf("%*.*s%s\n", pad, pad, " ", str);
}
return(0);
}
答案 2 :(得分:0)
您可以使用gotoxy()函数,就像在C ++中一样,但在C中,它不是预定义的,所以您应该首先定义它。另一种方法是只使用制表符和换行符(\ t和\ n ...)