使用文件操作编程实现:实现一个简单的注册功能。要求能通过键盘键入要注册的用户名和密码,并分别把用户名和密码保存在C盘根目录下的User.txt和PSW.txt中。可附加完成修改密码功能。
怎么修改我才能打开文件,一直不能打开,也在也在c盘里建了PSW.txt和User.txt了,是方法有错误吗
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//注册
void register_user()
{
char name[20];
char psw[20];
printf("请输入要注册的用户名:");
scanf("%s",name);
printf("请输入要注册的密码:");
scanf("%s",psw);
//将用户名保存到User.txt文件中
FILE *fp1 = fopen("C:\\User.txt","a+");
if(fp1 == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
fprintf(fp1,"%s\n",name);
fclose(fp1);
//将密码保存到PSW.txt文件中
FILE *fp2 = fopen("C:\\PSW.txt","a+");
if(fp2 == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
fprintf(fp2,"%s\n",psw);
fclose(fp2);
printf("注册成功!\n");
}
//修改密码
void modify_psw()
{
char name[20];
char psw[20];
char temp[20];
int i;
printf("请输入要修改密码的用户名:");
scanf("%s",name);
//从User.txt文件中获取用户名
FILE *fp1 = fopen("C:\\User.txt","r");
if(fp1 == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
i = 0;
while(fscanf(fp1,"%s",temp) != EOF)
{
if(strcmp(temp,name) == 0)
{
break;
}
i++;
}
fclose(fp1);
if(i == 0)
{
printf("没有此用户!\n");
return;
}
printf("请输入新密码:");
scanf("%s",psw);
//从PSW.txt文件中修改密码
FILE *fp2 = fopen("C:\\PSW.txt","r+");
if(fp2 == NULL)
{
printf("文件打开失败!\n");
exit(0);
}
for(int j = 0; j < i; j++)
{
fscanf(fp2,"%s",temp);
}
fseek(fp2,-strlen(temp),SEEK_CUR);
fprintf(fp2,"%s",psw);
fclose(fp2);
printf("修改成功!\n");
}
int main()
{
int choice;
while(1)
{
printf("1.注册\n");
printf("2.修改密码\n");
printf("0.退出\n");
printf("请选择:");
scanf("%d",&choice);
switch(choice)
{
case 1:
register_user();
break;
case 2:
modify_psw();
break;
case 0:
return 0;
default:
printf("输入错误!\n");
break;
}
}
return 0;
}