- 我想创建密码文件,但始终不成功,为什么?#include<
- #include
char *getpassword(char password[]);
void main()
{
int i=0;
FILE *fpr;
FILE *fpw;
char once[128];
char twice[128];
char load[128];
char get[128];
if((fpr=fopen("password.txt","r"))==NULL)
{
fclose
- 简单看了一下LZ的,功能是首先判断判断密码文件password.txt是否存在,如果存在,即打开文件内容并显示。否则输入新的字符,回车保存为密码文件。
个人认为代码中,的确有一点小BUG。关键在这句话:once[128]=getpassword(get); 函数调用返回数组地址,能这样赋值给另一个数组么(once又不是一个指针变量,而是一个指针常量)?
所以稍微修了一下代码,请参考:
#include
char *getpassword(char password[]);
void main()
{
FILE *fpr;
FILE *fpw;
char once[128];
char twice[128];
char load[128];
char get[128];
if((fpr=fopen("password.txt","r"))==NULL)
{
fclose(fpr);
fpw=fopen("password.txt","w");
strcpy(once,getpassword(get));
fwrite(once,sizeof(once),1,fpw);
fclose(fpw);
}
else
{
fread(load,sizeof(load),1,fpr);
puts(load);
fclose(fpr);
getch();
}}
char *getpassword(char password[])
{
int i=0;
while((password[i]=getch())!=13)
{
if(password[i]==8)
{
if(i>0)
{
printf("\b \b");
i--;
}
continue;
}
printf("*");
i++;
}
password[i]='\0';
printf("\n");
return(password);
}