分类：电脑/网络-程序设计-C/C++
问题：我想创建密码文件,但始终不成功,为什么?#include&lt; 
#include<std.h>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(fp#include<std.h>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(fpr);        fpw=fopen("password.txt","w");        once[128]=getpassword(get);        fwrite(once,sizeof(once),1,fpw);        fclose(fpw);    }    else    {        //fpr=fopen("password.txt","r");        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);}
回答：简单看了一下LZ的，功能是首先判断判断密码文件password.txt是否存在，如果存在，即打开文件内容并显示。否则输入新的字符，回车保存为密码文件。个人认为代码中，的确有一点小BUG。关键在这句话：once[128]=getpassword(get);  函数调用返回数组地址，能这样赋值给另一个数组么（once又不是一个指针变量，而是一个指针常量）？所以稍微修了一下代码，请参考：#include<stdio.h> 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);}