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

关于已有文本的更新覆盖有关问题

2012-02-23 
关于已有文本的更新覆盖问题求教各位高手,我在做ATM的模拟程序,做到改密码这部分。我从文本中把用户的密码

关于已有文本的更新覆盖问题
求教各位高手,我在做ATM的模拟程序,做到改密码这部分。我从文本中把用户的密码读出来,赋给了一个变量,然后改变这个变量的值(就是更改了密码),然后我想把密码重新写回文本中,只想在文本中原来保存密码的地方覆盖掉旧的密码就行。注:文本中还保存了用户名,卡号,身份证号码等信息。我只想把密码覆盖掉。
但是不知道怎么做,下面贴出我读出密码这段程序,我把读出的密码给了code[10]:
                  char   code[10];//从文本读取的用户密码
char   code1[10];//用户登陆时输入的密码
char   newcode[10];//新密码
char   newcode1[10];//重复输入的新密码
if((userfp=fopen(Cardnum, "r "))==NULL)
{printf( "Can   not   open   file\n ");
exit(0);
}
fgets(code,7,userfp);
printf( "请输入你原来的密码:\n ");
scanf( "%s ",code1);
while(strcmp(code,code1)!=0)//验证密码是否正确
{
printf( "您输入的密码不正确,请重新输入!\n ");
printf( "请输入密码: ");
scanf( "%s ",&code1);
}
printf( "请输入你的新密码:\n ");
scanf( "%s ",&newcode);
printf( "请再次输入新密码:\n ");
scanf( "%s ",&newcode1);
while(strcmp(newcode,newcode1)!=0)//验证密码是否正确
{
printf( "您输入的密码不一致,请重新输入!\n ");
printf( "请输入密码: ");
printf( "请输入你的新密码:\n ");
scanf( "%s ",&newcode);
printf( "请再次输入新密码:\n ");
scanf( "%s ",&newcode1);
}

[解决办法]
问题多多,printf( "请输入你的新密码:\n ");像这样的语句中的回车键都没剔除掉
建议在这样的语句后面都加一个getchar();语句
[解决办法]
把你的文本文件格式贴出来
[解决办法]
char str[]= "00000 ";
infile.seekp(7,ios::beg);
infile.write(str,4);
[解决办法]
a1 原密码 a2 新密码
memset(a1,0,sizeof(a1))清空数组
strcpy(a1,a2) 拷贝字符串
我的想法不知道有没有用
[解决办法]
fseek()
zxg623(蓝色的梦)的就行啊
[解决办法]
在从文本中读取密码前
long los=0;
调用一下:los=ftell(userfp);


在往文本内写回时先调用一下:fseek(userfp,los,SEEK_SET);
sprintf(userfp, "%7s ",newcode1);


就ok了。
[解决办法]
楼主,发下ATM的题给我吧
谢谢
chenyu2202863@yahoo.com.cn

热点排行