我使用箭头键作为输入来在菜单printf
上下移动箭头(“==>”) 。printf
我正在使用一个函数来计算箭头应该在哪里,用switch
例和printf("\n==>")
箭头应该在哪里,但它也会在新行中打印菜单。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void menu(void);
int arrowPos(void);
int main(void)
{
int aDet, aDet2;
int aCnt;
for(;;)
{
aDet = getch();
aDet2 = 0;
if(aDet == 0xE0)
{
aDet2 = getch();
if(aDet2 == 80) arrowPos();
}
}
return 0;
}
int arrowPos(void)
{
int aCnt;
LOOP:
aCnt++;
switch(aCnt)
{
case 1:
system("cls");
printf("==>");
// menu();
break;
case 2:
system("cls");
printf("\n==>");
break;
case 3:
system("cls");
printf("\n\n==>");
// menu();
break;
case 4:
aCnt = 0;
goto LOOP;
break;
}
menu();
//printf("%d",aCnt);
}
void menu(void)
{
printf("Option 1\n");
printf("Option 2\n");
printf("Option 3");
}
当它在第二个和第三个箭头上打印菜单时,菜单也会打印在新行上。
而不是看起来像
Option1
Option2
==>Option3
看起来像
==>Option1
Option2
Option3