#include<stdio.h>
#include<windows.h>
#define U 30
struct users
{
char ac[30];
char pw[30];
}
;
struct users use[U];//结构体
void wel();
void registeruser();
void login();
void userview();
void main()
{
wel();
}
void wel()
{
char se;
while ( se != '3' )
{
system( "cls" );
printf( "按1-注册-" );
printf( "\n" );
printf( "按2-登录-" );
printf( "\n" );
printf( "按3-退出-" );
printf( "\n" );
printf( "选择:" );
scanf( "%s", &se );
switch ( se )
{
case '1':
registeruser();
break;
case '2':
login();
break;
case '3':
exit( 0 );
break;
default:
if ( se != '1' || se != '2' || se != '3' )
printf( "没有这个选项!\n" );
system( "pause" );
break;
}
}
}
void registeruser()
{
char ac[30];
char pw[30];
int a = 0;
printf( "\t以下为注册帐号\n" );
FILE *fp;
fp = fopen( "c:\\user", "a" );//写入文件操作
if ( fp == NULL )
{
printf( "没有帐号信息..." );
printf( "\n" );
return;
}
printf( "请输入帐号:" );
scanf( "%s", &ac );
printf( "请输入密码:" );
scanf( "%s", &pw );
strcpy( use[a].ac, ac );
strcpy( use[a].pw, pw );
fprintf( fp, "%s %s\n", use[a].ac, use[a].pw );
fclose( fp );
printf( "已注册..." );
printf( "\n" );
system( "pause" );
}
void login()
{
char ac[30];
char pw[30];
int a = 0;
int flag = 0;
printf( "\t以下为登录帐号\n" );
printf( "请输入帐号:" );
scanf( "%s", &ac );
printf( "请输入密码:" );
scanf( "%s", &pw );
FILE *fp;
fp = fopen( "c:\\user", "r" );//读取文件操作
while ( !feof( fp ) )
{
fscanf( fp, "%s %sn", &use[a].ac, &use[a].pw );
if ( (strcmp( ac, use[a].ac ) == 0) && (strcmp( pw, use[a].pw ) == 0) )
{
flag = 1;
fclose( fp );
break;
}
a++;
}
if ( flag == 1 )
{
userview();
return;
}else{
printf( "帐号或者密码错误!\n" );
}
system( "pause" );
}
void userview()
{
int a = 0;
printf( "登录成功!" );
printf( "按任意键显示所有用户!\n" );
system( "pause" );
FILE *fp;
fp = fopen( "c:\\user", "r" );//读取文件操作
while ( fscanf( fp, "%s %sn", &use[a].ac, &use[a].pw ) != EOF )
{
printf( "\t帐号:%s 密码:%s\n", use[a].ac, use[a].pw );
a++;
}
fclose( fp );
system( "pause" );
}
注册后会在C盘增加一个存用户名的user文件
运行如图;
选择错误时
注册
登录成功并显示文件内容
登录失败