C语言在屏幕的任意位置输出字符 此为收费教程,尊重作者的原创,请到http://c.biancheng.net/cpp/u/jiaocheng/,缴费学习,我这边隐藏文章内容,供自己学习之用。
初学编程的读者,肯定很想编写出一个游戏来秀一下,贪吃蛇就是C语言小游戏中经典的一个,请猛击《C语言贪吃蛇游戏演示和说明》了解更多。
编写游戏的第一步就是搞定光标定位问题,这样你的程序就可以随心所欲、按任意顺序、在任意位置输出了。
光标定位需要使用windows.h头文件中的SetConsoleCursorPosition函数:
SetConsoleCursorPosition(HANDLE hConsoleOutput, COORD dwCursorPosition);hConsoleOutput表示控制台缓冲区句柄,可通过GetStdHandle(STD_OUTPUT_HANDLE)来获得;dwCursorPosition是光标位置,也就是第几行第几列,它是COORD类型的结构体。
例如,将光标定位到第3行第3列:
1 2 3 4 5 6 7 8 //定义光标位置 COORD coord; coord.X = 3; //第3行 coord.Y = 3; //第3列 //获取控制台缓冲区句柄 HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); //设置光标位置 SetConsoleCursorPosition(ConsoleHandle, coord);这样,程序就可以从第3行第3列开始输出了。
将代码补充完整:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <windows.h> int main(){ //定义光标位置 COORD coord; coord.X = 3; //第3行 coord.Y = 3; //第3列 //获取控制台缓冲区句柄 HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); //设置光标位置 SetConsoleCursorPosition(ConsoleHandle, coord); printf("123"); return 0; }注意:窗口的左上角是第0行第0列。搞定了光标重定位,你就可以将输出顺序打乱了,想在哪里输出就在哪里输出。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include <stdio.h> #include <windows.h> //设置光标位置 void setCursorPosition(int x, int y); //设置文字颜色 void setColor(int color); int main(){ setColor(3); setCursorPosition(3, 3); puts("★"); setColor(0XC); setCursorPosition(1, 1); puts("◆"); setColor(6); setCursorPosition(6, 6); puts("■"); return 0; } void setCursorPosition(int x, int y){ COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void setColor(int color){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color) ; }可以发现,先输出的字符位置不一定靠前,可以在任意位置。
看到这里,很多初学者会不懂,甚至一头雾水,不过没关系,这里仅仅是演示,引起你对C语言的兴趣,待学完C语言的基本语法后会恍然大悟。
» 本文链接:
http://www.0523jz.com/2712.html
» 订阅本站:
http://www.0523jz.com/feed
» 转载请注明来源:王桂明's Blog
» 《第4章 C语言输入输出 2、C语言在屏幕的任意位置输出字符》