1.请用fscanf和fprintf实现文件拷贝。
#include <stdio.h>
int main(int argc, const char *argv[])
{
// ***fprintf fscanf
// 写进
FILE* fp = fopen("./copy.txt","a");
if(fp == NULL)
{
perror("fopen");
return -1;
}
printf("copy文件打开!!\n");
char str[26];
printf("请输入字符串:");
scanf("%s",str);
fprintf(fp,"%s",str);
fclose(fp);
// 读出 并 写进
FILE* rfp = fopen("./copy.txt","r");
char str2[26];
fscanf(rfp,"%s",str2);
printf("st2=%s\n",str2);
// 打开要 粘贴的文件
FILE* paste = fopen("./paste.txt","a");
fprintf(paste,"%s",str2);
fclose(rfp);
fclose(paste);
return 0;
}
// *******fgetc fputc
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE* fp = fopen("./gets.txt","r");
if(fp == NULL)
{
perror("fopen");
return -1;
}
FILE* fp_w = fopen("./paste2.txt","w");
char c;
while((c=fgetc(fp)) != EOF)
{
fputc(c,fp_w);
}
fclose(fp); fclose(fp_w);
return 0;
}
2.实现登录功能。自定义一个usr.txt,手动输入账户密码,格式如下:账户密码
例如:zhangsan 12345
lisi abcde
wangwu abc123
需求如下:c.若终端输入的账户存在,但是密码不正确,则输出密码错误d.若账户密码均正确,则输出登录成功
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE* user = fopen("./users.txt","w+");
int n;
printf("请输入要插入的user个数:");
scanf("%d",&n);
char str1[26],str2[26];
for(int i=0; i<n; i++)
{
printf("请输入user 和 userpassword:\n");
scanf("%s %s",str1,str2);
fprintf(user,"%s %s",str1,str2);
fputc(10,user);
}
fclose(user);
FILE* user2 = fopen("./users.txt","r");
char str3[26], str4[26];
printf("请输入 user 和 password:");
scanf("%s %s",str3,str4);
while( fscanf(user2,"%s %s",str1,str2) != EOF )
{
if( strcmp(str3,str1) == 0)
{
printf("\n账户存在\n");
if( strcmp(str4,str2) == 0)
{
printf("密码正确,登录成功!!!\n");
fclose(user2);
return 0;
}
else
{
printf("密码错误!!!\n");
fclose(user2);
return 0;
}
}
}
printf("\n用户不存在!!!\n");
fclose(user2);
return 0;
}