如何用C语言编写一个程序,输出一个汉字,用方向键控制它在屏幕上的显示位置?编译器要用Visual C++6.0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言编写一个程序,输出一个汉字,用方向键控制它在屏幕上的显示位置?编译器要用Visual C++6.0相关的知识,希望对你有一定的参考价值。
C语言,别用C++。能把源代码发过来不?
参考技术A #include <stdio.h>#include <conio.h>
#include <windows.h>
#define MAX_X 78 //汉字占两个位置
#define MAX_Y 23 //avoid
typedef _CONSOLE_CURSOR_INFO CurInfo;
COORD curPos = 0 , 0;
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
CurInfo*initialInfo = NULL, currentInfo;
int hideCursor(int state) //1 hide
if(state == 1)
if(initialInfo == NULL)
initialInfo = (CurInfo *)malloc(sizeof(CurInfo));
GetConsoleCursorInfo(hCon, initialInfo);
currentInfo.dwSize = initialInfo->dwSize;
currentInfo.bVisible = false;
SetConsoleCursorInfo(hCon, ¤tInfo);
else
if(initialInfo != NULL)
SetConsoleCursorInfo(hCon, initialInfo);
free(initialInfo);
initialInfo = NULL;
return 0;
int setCurrentPos(int press)
switch(press)
case 75: //left
curPos.X = curPos.X == 0 ? 0 : curPos.X - 1;break;
case 72: //up
curPos.Y = curPos.Y == 0 ? 0 : curPos.Y - 1;break;
case 77: //right
curPos.X = curPos.X >= MAX_X ? MAX_X : curPos.X + 1;break;
case 80: //down
curPos.Y = curPos.Y >= MAX_Y ? MAX_Y : curPos.Y + 1;break;
default:
return -1;
return 0;
int main()
char *str = "人";
printf(str);
hideCursor(1);
while(1)
int press = getch();
if(press == 224) //方向键第一个值
SetConsoleCursorPosition(hCon, curPos); //FOR CLEAR UP
if(setCurrentPos(getch()) == 0)
printf(" "); // clear up, or use system("cls");
SetConsoleCursorPosition(hCon, curPos);printf(str);
else if(press == 27) //if press esc, exit
hideCursor(0);
break;
return 0;
追问
.obj - 1 error(s), 0 warning(s)
C:\Users ......obj.cpp(21) : error C2065: 'tInfo' : undeclared identifier
这个源码里许多东西我都看不懂,是纯C不?
line 21, SetConsoleCursorInfo(hCon, ¤tInfo);
改成SetConsoleCursorInfo(hCon, & currentInfo); //把 & 和c 之间的空格去掉
是C 但是用到了 windows一些API
& currentInfo 打不出来 ¤tInfo
如何用C语言编写一个程序,输入10个0-9之间的整数,请统计每个数字出现的个数,并输出?
#include<stdio.h>int num[10],count[10], i=0,temp;
//判断输入的数字是否是0到9之间的数
int input(int num)
if(num>=0&&num<=9)
return 1;
else
return 0;
//初始化计数的数组
void initCount()
int i = 0;
for(i=0;i<10;i++)
count[i]=0;
//统计每个数字出现的次数
void numCount(int num)
int i;
for(i=0;i<10;i++)
if(i==num)
count[i]++;
//输入数字
void runProm()
initCount();
for(;i<10;)
printf("请输入第%d个数:",(i+1));
scanf("%d",&temp);
if(input(temp)==1)
num[i]=temp;
numCount(num[i]);
i++;
else
printf("你输入的数字不在0到9之间,请重新输入!\n\n");
runProm();
void main()
int i;
runProm();
//输出每个数出现了几次
for(i=0;i<10;i++)
printf("%d出现了%d次!\n",i,count[i]);
参考技术A #include<stdio.h>
#include<string.h>
int main()
int cnt[10]=0,temp,state=1;
printf("enter 10 nums between 0 and 10");
for(int i=0;i<10;i++)
scanf("%d",&temp);
if(temp>=10||temp<0) state=0,break;
cnt[temp]+=1;
if(state)
for(int i=0;i<10;i++)
printf("%d:%3d",i,cnt[i]);
else printf("ERROR");
return 0;
以上是关于如何用C语言编写一个程序,输出一个汉字,用方向键控制它在屏幕上的显示位置?编译器要用Visual C++6.0的主要内容,如果未能解决你的问题,请参考以下文章