鱼C论坛

 找回密码
 立即注册
查看: 1652|回复: 3

[已解决]做个系统登陆模板,懵的一批求大哥指点

[复制链接]
发表于 2019-9-5 00:18:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int shuru() //正确返回1,错误返回0
{
char mi[10];
int i;
FILE *fp;
ATMSYTEM at;
char zhang[9]; fp = fopen( "atmsy.dat", "rb" );
flag = 0;
printf("\n\t ================欢迎进入用户登陆系统===============\n");
while(1) //循环录入用户信息
{
printf("\n请输入账号(0_退出):");
scanf("%s",zhang); if(zhang[0] == '0')
{
return 0; //退出系统,不进入主菜单
}
while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //查找用户账号是否存在
{
if(strcmp(zhang,at.zhanghao) == 0) //该用户存在
{
flag = 1;
break;
}
}
rewind(fp); //文件指针回到开头 if(flag) //若是该用户存在,那么输入密码
{
for( i = 0; i < 3; i++) //3次机会输入密码
{
printf("\n请输入密码:");
scanf("%s",mi);
while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //核对密码
{
if(strcmp(mi,at.password) == 0) //该密码存在
{
return 1;
}
}
rewind(fp); //不停返回文件开头,核对密码
}
printf("密码输错3次!无法登陆系统!\n");
getch();
return 0;
} if(flag == 0)
{
printf("输入账号错误,请重新输入\n");
getch();
}
}
}








出现懵懵的错误,求各位老大哥帮帮忙,谢谢了
:-------------------Configuration: ce shi - Win32 Debug--------------------
Compiling...
1.cpp
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(5) : error C2065: 'FILE' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(5) : error C2065: 'fp' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(5) : warning C4552: '*' : operator has no effect; expected operator with side-effect
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(6) : error C2065: 'ATMSYTEM' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(6) : error C2146: syntax error : missing ';' before identifier 'at'
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(6) : error C2065: 'at' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(7) : error C2065: 'fopen' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(8) : error C2065: 'flag' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(9) : error C2065: 'printf' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(13) : error C2065: 'scanf' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(17) : error C2065: 'fread' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(19) : error C2065: 'strcmp' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(19) : error C2228: left of '.zhanghao' must have class/struct/union type
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(25) : error C2065: 'rewind' : undeclared identifier
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(33) : error C2228: left of '.password' must have class/struct/union type
G:\Microsoft Visual Studio\MyProjects\ce shi\1.cpp(41) : error C2065: 'getch' : undeclared identifier
执行 cl.exe 时出错.

ce shi.exe - 1 error(s), 0 warning(s)
最佳答案
2019-9-6 12:08:58
我测试的代码,可以编译,参考一下吧

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>

  4. typedef struct
  5. {
  6.         char zhanghao[20];       
  7.         char password[20];
  8. }ATMSYTEM;

  9. int shuru() //正确返回1,错误返回0
  10. {
  11.         char mi[10];
  12.         int i;
  13.         FILE *fp;
  14.         ATMSYTEM at;
  15.         char zhang[9];
  16.         fp = fopen( "atmsy.dat", "rb" );
  17.         int flag = 0;
  18.         printf("\n\t ================欢迎进入用户登陆系统===============\n");
  19.         while(1) //循环录入用户信息
  20.         {
  21.                 printf("\n请输入账号(0_退出):");
  22.                 scanf("%s",zhang); if(zhang[0] == '0')
  23.                 {
  24.                         return 0; //退出系统,不进入主菜单
  25.                 }
  26.                 while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //查找用户账号是否存在
  27.                 {
  28.                         if(strcmp(zhang,at.zhanghao) == 0) //该用户存在
  29.                         {
  30.                                 flag = 1;
  31.                                 break;
  32.                         }
  33.                 }
  34.                 rewind(fp); //文件指针回到开头 if(flag) //若是该用户存在,那么输入密码
  35.                 {
  36.                         for( i = 0; i < 3; i++) //3次机会输入密码
  37.                         {
  38.                                 printf("\n请输入密码:");
  39.                                 scanf("%s",mi);
  40.                                 while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //核对密码
  41.                                 {
  42.                                         if(strcmp(mi,at.password) == 0) //该密码存在
  43.                                         {
  44.                                                 return 1;
  45.                                         }
  46.                                 }
  47.                                 rewind(fp); //不停返回文件开头,核对密码
  48.                         }
  49.                         printf("密码输错3次!无法登陆系统!\n");
  50.                         getch();
  51.                         return 0;
  52.                 } if(flag == 0)
  53.                 {
  54.                         printf("输入账号错误,请重新输入\n");
  55.                         getch();
  56.                 }
  57.         }
  58. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-5 11:28:41 | 显示全部楼层
没有包含头文件啊,#include <stdio.h>
另外ATMSYTEM是你程序定义的吗,把这个头文件也包含进来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-6 00:27:03 | 显示全部楼层
superbe 发表于 2019-9-5 11:28
没有包含头文件啊,#include
另外ATMSYTEM是你程序定义的吗,把这个头文件也包含进来。

#include <stdio.h>这个头文件加上去也运行不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-6 12:08:58 | 显示全部楼层    本楼为最佳答案   
我测试的代码,可以编译,参考一下吧

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>

  4. typedef struct
  5. {
  6.         char zhanghao[20];       
  7.         char password[20];
  8. }ATMSYTEM;

  9. int shuru() //正确返回1,错误返回0
  10. {
  11.         char mi[10];
  12.         int i;
  13.         FILE *fp;
  14.         ATMSYTEM at;
  15.         char zhang[9];
  16.         fp = fopen( "atmsy.dat", "rb" );
  17.         int flag = 0;
  18.         printf("\n\t ================欢迎进入用户登陆系统===============\n");
  19.         while(1) //循环录入用户信息
  20.         {
  21.                 printf("\n请输入账号(0_退出):");
  22.                 scanf("%s",zhang); if(zhang[0] == '0')
  23.                 {
  24.                         return 0; //退出系统,不进入主菜单
  25.                 }
  26.                 while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //查找用户账号是否存在
  27.                 {
  28.                         if(strcmp(zhang,at.zhanghao) == 0) //该用户存在
  29.                         {
  30.                                 flag = 1;
  31.                                 break;
  32.                         }
  33.                 }
  34.                 rewind(fp); //文件指针回到开头 if(flag) //若是该用户存在,那么输入密码
  35.                 {
  36.                         for( i = 0; i < 3; i++) //3次机会输入密码
  37.                         {
  38.                                 printf("\n请输入密码:");
  39.                                 scanf("%s",mi);
  40.                                 while(fread(&at,sizeof(ATMSYTEM),1,fp) != 0) //核对密码
  41.                                 {
  42.                                         if(strcmp(mi,at.password) == 0) //该密码存在
  43.                                         {
  44.                                                 return 1;
  45.                                         }
  46.                                 }
  47.                                 rewind(fp); //不停返回文件开头,核对密码
  48.                         }
  49.                         printf("密码输错3次!无法登陆系统!\n");
  50.                         getch();
  51.                         return 0;
  52.                 } if(flag == 0)
  53.                 {
  54.                         printf("输入账号错误,请重新输入\n");
  55.                         getch();
  56.                 }
  57.         }
  58. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 11:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表