- 论坛徽章:
- 0
|
新手请教:字符串输入及校验问题?
谢谢无双,我这去查查以前的帖子看!好难找啊,我是翻完了几乎这里的帖子才敢问的,请再麻烦看看我这个程序错在哪里?编译通过了,但是执行起来老CORE DUMP
#include <stdio.h>;
#define myfile "YY.DAT"
#define user struct info
main ()
{
char id_num[6],iden_num[18],in_code[6];
FILE *fp;
int result1,result2,result3,ok=0;
struct info {
char id_num[6];
char fg1;
char iden_num[18];
char fg2;
char in_code[6];
char fg3;
} user1 ;
printf("\n" ;
printf("请输入ID号:" ;
scanf("%s",id_num);
printf("请输入身份证号:" ;
scanf("%s",iden_num);
printf("请输入密码:" ; /*这里未能实现***显示,但不想用系统的getpass,因它不回显,请赐教 */
scanf("%s",in_code);
if( ( fp=fopen( myfile,"r" ) )==NULL )
{ printf( "Can not open file: %s\n",myfile ); exit(-1);}
while ( !feof (fp) )
{ fread ( &user1,sizeof(user),1,fp);
result1 = strcmp (user1.id_num,id_num,6);
result2 = strcmp (user1.iden_num,iden_number,1 ;
if ( ( result1 == 0 ) && ( result2 == 0 ) )
{ result3 = strcmp (user1.in_code,in_code,6);
if ( result3 == 0 )
{printf ("your passwd is right \n" ; ok=1;}
else
{printf ("your passwd is wrong \n" ;}
break;
}
if ( feof(fp) && ok == 0 )
{printf(" can not find such id\n" ; break;}
}
fclose(fp);
} |
|