【C】数组及其字符串

数组及其字符数组的基本知识点,以及一个编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数

例:编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数

#include<stdio.h>
#include <windows.h>//gotoxy()函数头文件
#include<conio.h>//getch()函数头文件

void gotoxy(int x, int y)//形参
{
    HANDLE hOut;
    COORD pos = {x, y};
	// 光标的起始位(第1列,第3行) 0是第1列 2是第3行
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOut, pos);
	//printf("定位光标位置搜索(%d,%d)\n",pos.X,pos.Y);
}
void paintWindow(int startX,int startY,int width,int height)
{

	int i=0;
	int j=0;

	//起始位置
	gotoxy(startX,startY);
	printf("╔");
	for(i=0;i<width-2;i++)
	{
		printf("═");
	}
	printf("╗");
	for(j=0;j<height-2;j++)
	{
		gotoxy(startX,startY+1+j);
		printf("║");
		for(i=0;i<width-2;i++)
		{
			printf(" ");
		}
		printf("║");
	}

	gotoxy(startX,startY + height-1);
    printf("╚");

    for(i=0;i<width-2;i++)
    {
        printf("═");
    }
    printf("╝");
    gotoxy(20,7);
    printf("OrderDish点菜系统");
}

int main()
{
	int i=0;
	char ch;
	int count=0;
	char userName[20]={0};
	char passwd[20]={0};

	paintWindow(5,5,50,20);
	gotoxy(15,10);
	printf("用户名:");
	gotoxy(15,12);
	printf("密码:");
	gotoxy(22,10);
	while(1)
	{
		while(1)
		{
			ch=getch();
			if(count>=8)//只能输入8位
			{
				break;
			}
			if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
			{
				userName[i]=ch;
				putch(ch);
				i++;
				count++;
			}
			else if(ch==13) break;//13为回车的ascll码值
			else if(ch=='\b')//删除的转义字符
			{
				if(count>0)
				{
					printf("\b \b");
					count--;
					userName[i]='\0';
				}
				
			}
			
		}

		gotoxy(22,12);
		count=0;
		i=0;
		while(1)
		{
			ch=getch();
			if(count>=12)//只能输入12位
			{
				break;
			}
			if(ch>='0'&&ch<='9')
			{
				passwd[i]=ch;
				putch('*');
				i++;
				count++;
			}
			else if(ch==13) break;
			else if(ch=='\b')//删除的转义字符
			{
				if(count>0)
				{
					printf("\b \b");
					count--;
					passwd[i]='\0';
				}
			}
		}

		gotoxy(22,18);
		if(strcmp(userName,"chen")==0&&strcmp(passwd,"1234")==0)
		{
			printf("登录成功!\n");
			break;
		}
		else
		{
			printf("用户名或密码错误!请重新输入!");
			i=0;
			count=0;
			memset(userName,0,sizeof(userName));//将数组里的值初始化
			memset(passwd,0,sizeof(passwd));
			system("cls");//刷新屏幕
			paintWindow(5,5,50,20);
			gotoxy(15,10);
			printf("用户名:");
			gotoxy(15,12);
			printf("密码:");
			gotoxy(24,10);
		}
	}
	return 0;
}

上一篇:java项目篇-用户脱敏展示


下一篇:Element Plus的el-tree-v2 组件实现仅叶子节点显示勾选框,并且只能单选