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;
}