1、请用fscanf和fprintf实现文件拷贝。 (fputc和fgetc)
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE* fp = NULL;
fp = fopen("./z1.txt","r");
//用fscanf统计文件大小
int count = 0;
char c;
// while(fscanf(fp,"%c",&c) != EOF)
//用fscanf统计文件大小fp,"%s",str1) !=EOF
// {
// count++;
// }
// printf("z1.txt的大小为:%d\n",count);
//fscanf和fprintf实现文件拷贝
FILE* fp1 = NULL;
//打开第二个文件
fp1 = fopen("./z2.txt","w");
//将第一个文件中获取的数据打印到第二个文件
while(fscanf(fp,"%c",&c)!=EOF)
{
fprintf(fp1,"%c",c);
}
fclose(fp);
fclose(fp1);
return 0;
}
2、实现登录功能。自定义一个usr.txt,手动输入账户密码,格式如下:账户 密码
例如: zhangsan 12345
lisi abcde
wangwu abc123
需求如下:
(1)从终端获取账户密码,与文件中的账户密码比较
(2)若终端输入的账户不存在,则输出账户不存在
(3)若终端输入的账户存在,但是密码不正确,则输出密码错误
(4)若账户密码均正确,则输出登录成功
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int data;
printf("请输入账户、密码>>>\n");
char name[10],pwd[10];
scanf("%s %s",name,pwd);
FILE* fp = fopen("./usr.txt","r");
if(NULL == fp)
{
printf("打开文件失败\n");
perror("fopen");
return -1;
}
char str1[10];
char str2[10];
for(int i=0;i<3;i++)
{
fscanf(fp,"%s %s",str1,str2);
if(strcmp(str1,name) != 0)
{
printf("账号不正确\n");
}
else if(strcmp(str1,name) != 0 && strcmp(str2,pwd) !=0)
{
printf("密码不正确\n");
}
else
{
printf("登录成功\n");
break;
}
}
fclose(fp);
return 0;
}