题目:
题目一:
写一个usr.txt文档,文档中每一行的格式为:姓名 密码 例如:
zhangsan 123456
lisi abcdef
任务:
要求从终端输入账户,密码;
与文件中的账户密码比较
如果账户不存在,则输出用户不存在
如果账户存在,密码错误,则输出密码错误
如果账户密码均正确,输出登录成功;
题目二:
用fgetc和fputc实现一个文件的拷贝,例如将a.c中的内容拷贝到b.c中
拷贝完毕后 可以用diff指令判断 两个文件是否相同: diff a.c b.c
代码:
01_fopen.c
#include<stdio.h>
#include<errno.h>
#include<string.h>
int main(int argc, const char *argv[])
{
/*题目一*/
#if 0
FILE *fp=NULL;
fp=fopen("./user.txt","a+");
if(fp==NULL)
{
perror("fopen");
return -1;
}
char zh[20];
char mm[20];
printf("请输入账号:");
scanf("%s",zh);
printf("请输入密码:");
scanf("%s",mm);
char zh1[20];
char mm1[20];
while(1)
{
if(EOF==fscanf(fp,"%s %s",zh1,mm1))break;
if(strcmp(zh,zh1)==0)
{
if(strcmp(mm,mm1)==0) printf("登录成功\n");
else printf("密码错误\n");
return 0;
}
}
printf("用户不存在\n");
if(fclose(fp)<0)
{
perror("fclose");
return -1;
}
#endif
/*题目二*/
#if 1
FILE *fp=fopen(argv[1],"a+");
FILE *fp_1=fopen(argv[2],"a+");
char c;
while((c=fgetc(fp))!=EOF) fputc(c,fp_1);
#endif
return 0;
}
user.txt
qwe 123
zhangsan 111
wangwu 333
运行结果:
题目一:
ubuntu@ubuntu:~$ gcc 01_fopen.c
ubuntu@ubuntu:~$ ./a.out
请输入账号:qwe
请输入密码:123
登录成功
ubuntu@ubuntu:~$ ./a.out
请输入账号:qwe
请输入密码:1
密码错误
ubuntu@ubuntu:~$ ./a.out
请输入账号:11
请输入密码:11
用户不存在
ubuntu@ubuntu:~$
题目二:

本文通过两个具体案例展示了文件操作的基础应用:一是实现基于文本文件的用户登录验证;二是使用fgetc和fputc函数完成文件内容的复制,并验证复制结果的准确性。
2854

被折叠的 条评论
为什么被折叠?



