对于一般的执行程序在控制台输出执行结果时,都会默认的显示在第0行的开头位置,那如果要是不想在
开头的位置显示怎么办呢,比如在做一个游戏的开发,需要在指定的位置输出一些特殊的字符或图标,这
时就需要把光标指定到该坐标位置才能正确显示你所预期的结果了
如下代码,应该可以给你一点小启发,试试看吧!
#include<stdio.h>
#include<windows.h> /*包含的所调用库函数的头文件*/
/*
*function: 在控制台指定的位置输出字符串
*参数:buf,输出的字符串;startX、startY为控制台的X,Y坐标
*/
void printStr(char *buf, int startX, int startY)
{
HANDLE hd;
COORD pos;
pos.X = startX;
pos.Y = startY;
hd = GetStdHandle(STD_OUTPUT_HANDLE); /*获取标准输出的句柄*/
SetConsoleCursorPosition(hd, pos); /*设置控制台光标输出的位置*/
printf("the string is : %s at console(%d, %d) position !\n", buf, pos.X, pos.Y);
}
int main(int argc,char *argv[])
{
char showcontent[128];
memset(showcontent, 0, sizeof(showcontent));
printf("Input string :");
gets(showcontent);
printStr(showcontent, 1,1);
printStr(showcontent, 5,5);
return 0;
}