7.25作业

用fgetc与fputc函数实现

1、文件拷贝,例如将7.txt的内容拷贝到8.txt中

2、要求用fgets计算一个文件有多少字节

3、用fgetc计算一个文件有几行

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	char s=0,n=0;
	int count=0;
	FILE *fp1=fopen("./7.txt","w");
	FILE *fp2=fopen("./8.txt","w");
	if(NULL==fp1)
	{
		perror("fp");
		return -1;
	}
	printf("fopen success\n");
	if(NULL==fp2)
	{
		perror("fp");
		return -1;
	}
	printf("fopen success\n");
	fputc('4',fp1);
	fputc('a',fp1);
	fputc('b',fp1);
	fputc('\n',fp1);
	fputc('\n',fp1);
	fputc('c',fp1);
	fputc('\n',fp1);
	fclose(fp1);
	fp1=fopen("./7.txt","r");
	while((s=fgetc(fp1))!=EOF)
	{
		if('\n'==s)
			n++;
		fputc(s,fp2);
		count++;
	}
	if(fclose(fp1)<0)
	{
		printf("fclose erro");
		return -1;
	}		
	if(fclose(fp2)<0)
	{
		printf("fclose erro");
		return -1;
	}		
	printf("有%d字节\n",count);
	printf("有%d行\n",n+1);
	return 0;
}

实现登录功能。自定义一个usr.txt,手动输入账户密码,格式如下:账户 密码

例如: zhangsan 12345

lisi abcde

wangwu abc123

需求如下:

从终端获取账户密码,与文件中的账户密码比较

若终端输入的账户不存在,则输出账户不存在

若终端输入的账户存在,但是密码不正确,则输出密码错误

若账户密码均正确,则输出登录成功

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
	FILE *fp=fopen("./usr.txt","w");
	if(NULL==fp)
	{
		perror("fp");
		printf("文件不存在\n");
		return -1;
	}
	printf("文件存在\n");
	fprintf(fp,"zhangsan 12345\nlisi abcde\nwangwu abc123");
	if(fclose(fp)<0)
	{
		printf("fclose fall");
		return -1;
	}
	printf("fclose success\n");	
	char s[20]="";
	char q[20]="";
	char z[20]="";
	char m[20]="";
	fp=fopen("./usr.txt","r");
	printf("输入账户:");
	scanf("%s",s);
	while(fscanf(fp,"%s",z)!=EOF)
	{
		if(strcmp(s,z)==0)
		{
			fscanf(fp,"%s",m);
			printf("输入密码:");
			scanf("%s",q);
			if(strcmp(q,m)==0){
				printf("登录成功\n");
				if(fclose(fp)<0)
				{
					printf("fclose fall");
					return -1;
				}
				printf("fclose success\n");	
				return 0;
			}
			else
			{
				printf("密码错误\n");
				if(fclose(fp)<0)
				{
					printf("fclose fall");
					return -1;
				}
				printf("fclose success\n");	
				return -1;
			}
		}
        fscanf(fp,"%s",m);
	}
	printf("账户不存在\n");
	if(fclose(fp)<0)
	{
		printf("fclose fall");
		return -1;
	}
	printf("fclose success\n");	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值