2/21作业

 1. 注册功能

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char name[20];
	char passwd[20];
	printf("输入待注册用户名: ");
	scanf(" %s",name);
	printf("输入待注册密码: ");
	scanf( "%s",passwd);
	FILE* fp = fopen("./usr.txt", "r");
	if(NULL == fp)
	{
		perror("fopen" );
		return -1;
	}
	//判断用户名是否存在
	char username[20];
	char pd[20];
	while(1)
	{
		if(fscanf(fp, "%s %s" ,username,pd)<0)

			break;
		if( strcmp(username,name)==0)
		{
			printf("用户名已存在! \n");
			printf( "重新输入待注册用户名: ");
			scanf("%s" ,name);
			printf("重新输入待注册密码: ");
			scanf( "%s",passwd);
			rewind(fp);
		}
	}
	fprintf(fp," %s %s" ,name ,passwd);
	printf("注册成功! \n");
	fclose(fp);
	return 0;
}


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

#include <stdio.h>
#include <string.h>
//计算文件大小
int get_size(FILE *fp)
{
	int count=0;
	while(fgetc(fp) != EOF)
	{
		count++;
	}
	printf("%d",count);
	return count;
}


//计算一个文件有多少行
int get_line(FILE *fp)
{
	int count=0;
	int c=0;
	while((c=fgetc(fp)) != EOF)
	{
		if('\n'==c)
		{
			count++;
		}
	}
	return count;
}
int main(int argc, const char *argv[])
{
	FILE *fp=fopen("work.txt","r");
	if(NULL==fp)
	{
		perror("fopen");
		return -1;
	}
	int line=get_line(fp);
	printf("%d\n",line);
	int size=get_size(fp);
	printf("%d\n",size);
	fclose(fp);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/k_weihgl/article/details/129148931