1.实现登录动能。蚁一个usr.txt,手动输入账户密码,格式如下:账户密码
例如: zhangsan 12345
lisi abcde
wangwu abc123
求如下:
a.从终端获取账户密码,欤件中的账户密码砒较
b.若终端输入的账户不存在,则输出账户不存在
c.若终端输入的账户存在,但是密码不正确,则输出密码错误
d.若账户密码均正确,则输出登录成功
#include "stdio.h"
#include "errno.h"
#include "string.h"
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./usr.txt","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
printf("请输入账号>>");
char arr[100];
scanf("%s",arr);
printf("请输入密码>>");
char brr[100];
scanf("%s",brr);
char ptr1[100];
char ptr2[100];
int res;
while(1)
{
res=fscanf(fp,"%s",ptr1);
res=fscanf(fp,"%s",ptr2);
if(EOF == res)
{
printf("账号错误\n");
break;
}
int a=strcmp(ptr1,arr);
int b=strcmp(ptr2,brr);
if(0 == a)
{
if(0 == b)
{
printf("登录成功\n");
break;
}
else
{
printf("密码错误\n");
break;
}
}
}
fclose(fp);
return 0;
}
运行结果:
2.计算一个文件的大小,请封装成函数。
#include "stdio.h"
int daxiao(FILE* fp)
{
char c;
int i=0;
while(1)
{
c=fgetc(fp);
if(EOF == c)
{
break;
}
i++;
}
return i;
}
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./1_1211.c","r");
int res=0;
res=daxiao(fp);
printf("%d\n",res);
fclose(fp);
return 0;
}
运行结果:
3.用fgets和fputs实现文件拷贝
#include "stdio.h"
int main(int argc, const char *argv[])
{
FILE* fp1=fopen("./1_1211.c","r");
FILE* fp2=fopen("./cs.c","w+");
char prr[128];
while(fgets(prr,sizeof(prr),fp1) != NULL)
{
fputs(prr,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
运行结果: