首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

VC中关于文件的保存与读取的有关问题

2012-02-08 
VC中关于文件的保存与读取的问题本人最近在用VC做ATM的模拟程序,我想要把用户开户的资料分别用用户的名字

VC中关于文件的保存与读取的问题
本人最近在用VC做ATM的模拟程序,我想要把用户开户的资料分别用用户的名字保存为文本,然后在用户下次登陆的时候从文本中读出用户的资料(比如密码),然后比较和用户输入的密码是否一致。现在刚做好了开户这一块,遇到一个问题,就是在单独用开户的那个函数时可以用用户名分别保存资料,但是一旦在主函数中调用就会出错。请高手帮我解决用每一个户名分别保存各自的资料以及在用户下次登陆时从文本读出开户时输入的密码,以和当时输入的密码比较!  
下面贴出我的程序:  
#include   "stdio.h "  
#include   "string.h "  
#include   "stdlib.h "  
//开户[1]  
void   Newuser()  
{  
FILE   *userfp;  
char   name[30];   //用户名  
if((userfp=fopen(name, "w "))==NULL)   //分别用用户的名字为文本名保存文本  
{  
printf( "Can   not   open   file\n ");  
exit(0);  
}  
char   IDnum[30];   //身份证号码  
char   code[10];   //第一次输入的密码  
char   code1[10];   //第二次输入的密码  
int   Length;   //身份证的位数  
int   Length1;   //密码的位数  
printf( "请输入您的姓名: ");  
scanf( "%s ",&name);  
printf( "请输入您的身份证号码: ");  
scanf( "%s ",&IDnum);  
Length=strlen(IDnum);  
while   (Length!=18)   //检查身份证号码是否为十八位  
{  
printf( "请正确输入您的十八位身份证号码!\n ");  
printf( "请输入您的身份证号码: ");  
scanf( "%s ",&IDnum);  
Length=strlen(IDnum);  
}  
printf( "请输入您的密码: ");  
scanf( "%s ",&code);  
Length1=strlen(code);  
while   (Length1!=6)   //验证密码是否为六位  
{  
printf( "您输入的密码长度错误,请正确输入六位密码!\n ");  
printf( "请输入您的密码: ");  
scanf( "%s ",&code);  
Length1=strlen(code);  
}  
printf( "请再次输入您的密码: ");  
scanf( "%s ",&code1);  
while(strcmp(code,code1)!=0)   //比较两次输入的密码是否相同  
{  
printf( "您两次输入的密码不一致,请重新输入!\n ");  
printf( "请输入您的密码: ");  
scanf( "%s ",&code);  
Length1=strlen(code);  
while   (Length1!=6)   //验证密码是否为六位  
{  
printf( "您输入的密码长度错误,请正确输入六位密码!\n ");  
printf( "请输入您的密码: ");  
scanf( "%s ",&code);  
Length1=strlen(code);  
}  
printf( "请再次输入您的密码: ");  
scanf( "%s ",&code1);  
}  
printf( "用户开户成功!\n ");  
fprintf(userfp, "%s,%s,%s ",&name,&IDnum,&code);  
fclose(userfp);  
}  
//ATM主界面  
void   main()  
{  
int   select;  
scanf( "%d ",&select);  
switch(select)   {  
case   1:Newuser();  
break;  
default:printf( "请输入正确的选项!\n ");  
}  
}


[解决办法]
fprintf(userfp, "%s,%s,%s ",&name,&IDnum,&code);
改为:fprintf(userfp, "%s,%s,%s ",name,IDnum,code);

热点排行