如何将光标移回C中的第一行?

我是C新手,这是我的代码。

#include void printCard(char name, char symbol); int main() { printCard('J','*'); printCard('K','&'); } void printCard(char name, char symbol) { printf("-------------\n"); printf("| %c |\n",name); printf("| %c |\n",symbol); printf("| |\n"); printf("| |\n"); printf("| |\n"); printf("| %c |\n",symbol); printf("| %c |\n",name); printf("-------------\n"); } 

这是我得到的输出。

在此处输入图像描述

有没有办法让第二张牌出现在第一张牌旁边? 谢谢

如果您的终端支持它们,可以使用这些终端转义码来定位光标。

 #include void printCard( int col, char name, char symbol); int main() { printf ( "\033[2J");//clear screen printCard( 0, 'J','*'); printCard( 1, 'K','&'); return 0; } void printCard(int col, char name, char symbol) { printf ( "\033[1;%dH", col * 14);//move cursor line 1 printf("-------------\n"); printf ( "\033[2;%dH", col * 14);//move cursor line 2 printf("| %c |\n",name); printf ( "\033[3;%dH", col * 14);//move cursor line 3 printf("| %c |\n",symbol); printf ( "\033[4;%dH", col * 14);//move cursor line 4 printf("| |\n"); printf ( "\033[5;%dH", col * 14);//move cursor line 5 printf("| |\n"); printf ( "\033[6;%dH", col * 14);//move cursor line 6 printf("| |\n"); printf ( "\033[7;%dH", col * 14);//move cursor line 7 printf("| %c |\n",symbol); printf ( "\033[8;%dH", col * 14);//move cursor line 8 printf("| %c |\n",name); printf ( "\033[9;%dH", col * 14);//move cursor line 9 printf("-------------\n"); } 

这是对我有用的function。

 void gotoXY(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } 

感谢@PCLuddite指点我检查setConsoleCursorPosition,它帮助我在线找到了上述function。 希望这有助于其他人。