IO进程day1:(标准IO)

 作业:

手动创建一个usr.txt文件,其中存储用户的账户密码,一行一个账户密码,中间用空格隔开。例如:

zhangsan aaaa

lisi bbbb

wangwu cccc

需求如下:

从终端获取一个账户,密码。判断该账户密码是否正确

若账户不存在,则输出账户不存在

若账户存在,密码错误,则输出密码错误

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

#include
#include
#include
/******************注册函数*********************/
void registe()//注册函数
{
	char account[20];//注册账号
	char passeword[20];//注册密码

	printf("请输入注册账号:");
	scanf("%s",account);
	printf("请输入注册密码");
	scanf("%s",passeword);


	//将注册信息写入到文件中
	//1.打开文件
	FILE* fp=fopen("./usr.txt","a");
	if(NULL==fp)
	{
		perror("fopen filed\n");
		return;
	}
	perror("fopen success");
	//从终端写入文件
	fprintf(fp,"%s %s\n",account,passeword);

	//关闭文件
	fclose(fp);
	printf("注册成功\n");
	
}
/**********************************登录函数*****************/
void login()
{
	char daccount[20];//登录账号
	char dpasseword[20];//登录密码
    
	printf("请输入登录账号");
	scanf("%s",daccount);
	printf("请输入登录密码");
	scanf("%s",dpasseword);

    //测试
	char usrname[20];
	char pwd[20];


	//打开文件
	FILE* fp=fopen("./usr.txt","r");
	if(NULL == fp)
	{	
		perror("fopen filed");
		return;
	}
	//对比
	while(1)
	{
		//从文件中读取一行数据
		int ret=fscanf(fp,"%s %s",usrname,pwd);
		//判断
		if(ret<0)
		{
			printf("登录失败\n");
			return;
		}
		if(strcmp(usrname,daccount)==0&&strcmp(pwd,dpasseword)==0)
		{
			printf("登录成功\n");
			return;
		}
	}
	
}
 int main(int argc, const char *argv[])
{

	//手动创建一个usr.txt文件,其中存储用户的账户密码,一行一个账户密码
	//中间用空格隔开
	//zhangsan aaaa
	//lisi bbbb
	//wangwu cccc
	//创建菜单
	int menu;//菜单选项

	for(;;)
	{
		printf("\t\t=========1.注册========\n");
		printf("\t\t=========2.登录========\n");
		printf("\t\t=========0.退出========\n");

		printf("请输入功能: ");
		scanf("%d",&menu);


		//选项
		switch(menu)
		{
		case 1:
			{
				//完成注册功能
				registe();


			}
			break;
		case 2:
			{
				//完成登录功能
				login();
			}
			break;
		case 0:exit(0); //结束进程
		default:printf("您输入的功能有误,请重新输入!!!\n");

		}
	}


		return 0;
}

 效果图:

IO进程day1:(标准IO)_第1张图片 

作业:

计算一个文件有几行

计算一个文件有多大

//记录文件的大小
#include

int main(int argc, const char *argv[])
{
    //argc是外部传参的参数个数
    //argv:是一个字符串指针数组,表示的是传入参数字符串的地址
    if(argc != 2)
    {
        printf("input file error\n");
        printf("usage:./a.out fileName\n");
        return -1;
    }

    //定义文件指针
    FILE *fp;
    //以只读的形式打开文件
    if((fp=fopen(argv[1], "r")) == NULL)
    {
        perror("fopen error");
        return -1;
    }

    //读取文件中的字符,并判断是否为换行
    char buf;
    int count = 0;          //记录行数
    while((buf=fgetc(fp)) != EOF)
    {
        //对buf进行判断
        if(buf == '\n')
        {
            count++;
        }
    }

    //关闭文件
    fclose(fp);

    printf("您给的文件一共有%d行\n", count);

    return 0;
}

#include
#include     
#include     
	int main(int argc, const char *argv[])
{

	//记录文件的大小
	if(argc!=2)
	{
		printf("input file error\n ");
		printf("usage:./a.out fileName\n ");
		return -1;
	}
	//定义文件指针
	FILE* fp;
	//以只读的形式打开文件
	if((fp=fopen(argv[1],"r"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	//读取文件中的字符,判断是否到结尾
	int ret;
	int count=0;
	while((ret=fgetc(fp))!=EOF)
	{
		count++;
	}
	//关闭文件
	fclose(fp);
	printf("你给的文件一共有%d个字节\n",count);
	
	return 0;
} 

 

 效果图:

IO进程day1:(标准IO)_第2张图片

 

 

你可能感兴趣的:(c语言)