我想创建密码文件,但始终不成功,为什么?#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); }