IO第一天

1.请用fscanf和fprintf实现文件拷贝。 (fputc和fgetc)

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

例如: zhangsan 12345

lisi abcde

wangwu abc123

需求如下:

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

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

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

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

复制代码
#include <stdio.h>
int main(int argc, const char *argv[])
{
//判断命令行是否传参	
	if(argc<2)
	{
		printf("命令行未传参,请输入文件名");
		return -1;
	}
	//以读的形式打开文件
	FILE* MAX = fopen(argv[1],"r");
	//判断MAX是否为空
	if(NULL == MAX)
	{
		perror("floen");
		return -1;
	}
	//int sizf存储文件的大小
	int sizf = 0;
	char c;
	//循环读取文件中的单个字符并判断文件是否读取完毕
	//scanf中的%s,%d,%f不会获取换行,空格,制表符
	//      %c可以获取换行,空格,制表符
	FILE* ppt = fopen("./mont.txt","w");
	while(fscanf(MAX,"%c",&c)!=EOF)
	{
		fprintf(ppt,"%c",c);
		sizf++;
	}
	printf("拷贝成功\n");
	//打印文件大小
	printf("sizf=%d\n",sizf);

	fclose(ppt);

	fclose(MAX);

return 0;
}
复制代码
#include <stdio.h>                                 
#include <string.h>
int main(int argc, const char *argv[])
{
	FILE*max = fopen("./pasword.txt","w");
	if(NULL == max)
	{
		perror("fopen");
		return -1;
	}
	printf("请输入账号和密码\n");
	char num[20] = "";
	char main[20] = "";
	scanf("%s %s",num,main);
	getchar();
	fprintf(max,"%s %s",num,main);
	fclose(max);

    FILE*pb=fopen("./pasword.txt","r");
    if(pb==NULL)
    {
        printf("创建失败\n");
        perror("fopen");
        return -1;
    }
    char arr[20],str[20];
    fscanf(pb,"%s %s",arr,str);
    fflush(pb);
 
    printf("请输入账号和密码\n");
    char arr1[20],brr[20];
    scanf("%s %s",arr1,brr);
    int a,b;
    a=strcmp(arr,arr1);
    b=strcmp(str,brr);
    if(a!=0)
    {
        printf("账号错误\n");
        return -1;
    }
    else if(a==0)
    {
        printf("账号正确\n");
    }
    if(b!=0)
    {
        printf("密码错误\n");
        return -1;
    }
    else if(b==0)
    {
        printf("密码正确\n");
    }
    printf("登录成功\n");
    fclose(pb);
}
相关推荐
启观川7 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸7 小时前
排序算法介绍
python·算法·排序算法
动词ing8 小时前
【题目练习】算法 组合总和||
算法
longlongzihan8 小时前
链表找环:Floyd 判圈算法(LeetCode 141 & 142 )
c++·算法·leetcode·链表
专业程序开发源8 小时前
flask家电故障预测系统92491-计算机课程设计/毕业设计
vscode·python·sql·算法·flask·课程设计
Logic1019 小时前
C语言/数据结构欧几里得算法题解:长方形切割最大正方形——贪心划分计数
c语言·数据结构·算法·贪心算法·时间复杂度·空间复杂度·欧几里得算法
yi0119 小时前
LeetCode 643. 子数组最大平均数 I|从暴力枚举到滑动窗口
人工智能·笔记·python·算法·leetcode·滑动窗口
极光通讯9 小时前
服务器内存来料检验(IQC)实操:批次追溯、外观判定与上机验证
java·服务器·算法
淡海水10 小时前
02-04-原理篇-GC Roots与对象图遍历
算法·unity·c#·图·gc·遍历·roots
ClickHouseDB10 小时前
ClickHouse 大规模 OpenTelemetry 数据接入架构的可靠性演进
算法