1.实现登录功能。自定义一个usr.txt,手动输入账户密码,格式如下:账户 密码
例如: zhangsan 12345
lisi abcde
wangwu abc123
需求如下:
从终端获取账户密码,与文件中的账户密码比较
若终端输入的账户不存在,则输出账户不存在
若终端输入的账户存在,但是密码不正确,则输出密码错误
若账户密码均正确,则输出登录成功
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE*fp=fopen("usr.txt","r");
if(NULL==fp)
{
return -1;
}
char arr1[128], arr2[128],user[128],passwd[128];
int flag=0;
printf("请输入账号/密码:");
scanf("%s %s",user,passwd);
getchar();
while(fgetc(fp)>=0)
{
fscanf(fp,"%s",arr1);//将账户存入arr1
fscanf(fp,"%s",arr2);//将密码存入arr2
if(strcmp(arr1,user)==0)
{
flag=1;
if(strcmp(arr2,passwd)==0)
{
printf("登录成功");
break;
}
else
{
printf("密码错误");
break;
}
}
else
{
continue;
}
}
if(0==flag)
{
printf("账户不存在\n");
}
fclose(fp);
return 0;
}
2.计算一个文件的大小,请封装成函数。
#include <stdio.h>
int sizeof_()
{
FILE*fp=fopen("./02_day.c","r");
if(NULL==fp)
{
return -1;
}
int count=0;
while(1)
{
if(EOF==fgetc(fp))
{
break;
}
count++;
}
fclose(fp);
return count;
}
int main(int argc, const char *argv[])
{
printf("文件大小:%d\n",sizeof_());
return 0;
}
3.用fgets和fputs实现文件拷贝
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE*fp=fopen("01_day.c","r");
if(NULL==fp)
{
return -1;
}
FILE*f=fopen("01.txt","w");
if(NULL==f)
{
return -1;
}
char arr[128];
while(fgets(arr,sizeof(arr),fp)!=NULL)
{
fputs(arr,f);
}
fclose(fp);
fclose(f);
return 0;
}