1.请用fscanf和fprintf实现文件拷贝。
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc < 2)
{
printf("未传参\n");
return -1;
}
FILE* fp = fopen(argv[1],"r");
FILE* wr = fopen("./fprintf.txt","w");
if(fp == NULL)
{
perror("fopen");
return -1;
}
char c;
int size=0;
while(fscanf(fp,"%c",&c) != EOF)
{
printf("%c", c);
fprintf(wr,"%c",c);
size++;
}
printf("size=%d\n",size);
fclose(fp);
return 0;
}
2.实现登录功能。自定义一个usr.txt,手动输入账户密码,格式如下:账户 密码
例如: zhangsan 12345
lisi abcde
wangwu abc123
需求如下:
.从终端获取账户密码,与文件中的账户密码比较
.若终端输入的账户不存在,则输出账户不存在
.若终端输入的账户存在,但是密码不正确,则输出密码错误
.若账户密码均正确,则输出登录成功
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE* fp = fopen("./user.txt","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
char str1[32],str2[32],user[32],pass[32];
printf("请输入账号 密码:\n");
scanf("%s %s",user,pass);
while (fscanf(fp,"%s %s",str1,str2) != EOF)
{
// printf("%s %s",str1,str2);
if (0 == strcmp(user,str1))
{
if (0 == strcmp(pass,str2))
{
printf("登录成功\n");
} else {
printf("密码错误\n");
}
break;
}
else
{
printf("账户不存在\n");
break;
}
}
fclose(fp);
return 0;
}