2023年2月21作业

 

1、注册功能

#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
	//打开文件
	FILE *fp=fopen("./usr.txt","a+");
	if(NULL==fp)
	{
		perror("fopen");
		return -1;
	}
	char name[30],passwd[32];
	char file_name[30],file_passwd[32];
	//终端获取一个名字,一个密码
	printf("请输入要录取的账号 密码\n");
	scanf("%s %s",name,passwd);
	//将密码输入到文件中
	while(1)
	{
		if(fscanf(fp,"%s %s",file_name,file_passwd)==EOF)
		{
			fprintf(fp,"%s %s",name,passwd);
			fputc('\n',fp);
			printf("注册成功!\n");
			break;
		}
		if(strcmp(name,file_name)==0)
		{
			printf("用户已注册!\n");
			break;
		}
		
	}
	fclose(fp);
	return 0;
} 

运行结果

 ubuntu@ubuntu:作业$ gcc zhuce.c 
ubuntu@ubuntu:作业$ ./a.out 
请输入要录取的账号 密码
zhangsan aaaa
注册成功!
ubuntu@ubuntu:作业$ zhangsan aaaa
zhangsan:未找到命令
ubuntu@ubuntu:作业$ ./a.out 
请输入要录取的账号 密码
zhangsan aaaa
用户已注册

usr.txt

  1 sunyi fan66666
  2 dengjiabao 33333
  3 zhangsan aaaa  

2、用fgetc 实现一个文件有几行,文件大小

  1 #include<stdio.h>
  2 int main(int argc, const char *argv[])
  3 {
  4     //打开一个文件
  5     FILE *fp=fopen("./main.c","r");
  6     if(NULL==fp)
  7     {
  8         perror("fopen");
  9         return -1;
 10     }
 11     char n;
 12     int num=0;//记录行数
 13     int mun=0;//记录文件大小
 14     while(1)
 15     {
 16         n=fgetc(fp);
 17         if(EOF==n)
 18             break;
 19         else if('\n'==n)
 20         {
 21             num++;
 22         }
 23         mun++;
 24     }
 25     
 26     printf("共有%d行\n",num);
 27     printf("共有%d个字节\n",mun);
 28     return 0;
 29 }                             

main.c的文件代码(计算使用)

#include<stdio.h>
int main(int argc, const char *argv[])
{
	 /*
	 *1.抄函数名
	 *2、考虑函数,一定要数据类型匹配
	 *3、接返回值,定义相同数据类型的变量接收
	 */
	FILE* fp=fopen("./fopen.txt","r");
	if(NULL == fp)
	{
		//printf("errno = %d\n,errno");
		printf("fopen failed\n");
		return -1;
	}
	printf("fopen success\n");
	//关闭文件
	if(fclose(fp) == EOF)
	{
		perror("fclose");
		return -1;
	}
	printf("fclose success\n");


	return 0;
}

运行结果

ubuntu@ubuntu:作业$ gcc data.c
ubuntu@ubuntu:作业$ ./a.out 
共有27行
共有482个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

malingshu404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值