1.思维导图
作业
1、使用这fscanf和fprintf两个函数实现文件的拷贝。
#include <myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp1 = fopen("1.txt","r");
FILE *fp2 = fopen("2.txt","w");
if(fp1==NULL || fp2==NULL)
{
perror("fopen");
return -1;
}
char buff[1024];
while(1)
{
if(fscanf(fp1,"%s",buff)==EOF)
{
break;
}
fprintf(fp2,"%s",buff);
}
fclose(fp1);
fclose(fp2);
return 0;
}
2、fwrite和fread实现文件拷贝。
#include <myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp1 = fopen("1.txt","r");
FILE *fp2 = fopen("2.txt","w");
if(NULL==fp1 || NULL==fp2)
{
perror("fopen");
return -1;
}
char buff[1024];
int i=0;
while(1)
{
fseek(fp1,i*sizeof(buff),SEEK_SET);
int res = fread(buff,1,sizeof(buff),fp1);
if(res==0)
{
break;
}
fwrite(buff,1,res,fp2);
fflush(fp1);
i++;
}
fclose(fp1);
fclose(fp2);
return 0;
}
3、登录注册实现一遍。
#include <myhead.h>
int regist(const char *File)
{
char uer[20],pow[20];
printf("请输入注册账号:");
fgets(uer,sizeof(uer),stdin);
printf("请输入注册密码:");
fgets(pow,sizeof(pow),stdin);
uer[strlen(uer)-1] = '\0';
pow[strlen(pow)-1] = '\0';
FILE *fp = fopen(File,"a");
if(fp==NULL)
{
perror("fopen");
return -1;
}
fprintf(fp,"%s %s\n",uer,pow);
fclose(fp);
return 0;
}
int login(const char *File)
{
char duer[20],dpow[20];
char uer[20],pow[20];
printf("请输入登录账号:");
fgets(duer,sizeof(duer),stdin);
printf("请输入登录密码:");
fgets(dpow,sizeof(dpow),stdin);
duer[strlen(duer)-1] = '\0';
dpow[strlen(dpow)-1] = '\0';
FILE *fp = fopen(File,"r");
if(fp==NULL)
{
perror("fopen");
return -1;
}
while(1)
{
int res = fscanf(fp,"%s %s",uer,pow);
if(res==EOF)
{
break;
}
if(strcmp(uer,duer)==0 || strcmp(pow,dpow)==0)
{
printf("登陆成功\n");
return 0;
}
}
printf("登录失败\n");
fclose(fp);
return -1;
}
int main(int argc, const char *argv[])
{
if(argc!=2)
{
printf("参数错误\n");
return -1;
}
while(1)
{
printf("\t\t\t1.注册\n");
printf("\t\t\t2.登录\n");
printf("\t\t\t0.退出\n");
printf("请输入您的选项:");
int value;
scanf("%d",&value);
getchar();
switch(value)
{
case 1:
{
regist(argv[1]);
}
break;
case 2:
{
login(argv[1]);
}
break;
case 0:exit(0);
default:printf("您输入有误,请重新输入:\n");continue;
}
}
return 0;
}