2.27文件IO作业

1.请用fscanf和fprintf实现文件拷贝。

#include <stdio.h>

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

    // ***fprintf fscanf
    // 写进
	FILE* fp = fopen("./copy.txt","a");
	if(fp == NULL)
	{
		perror("fopen");
		return -1;
	}
	printf("copy文件打开!!\n");
	char str[26];
	printf("请输入字符串:");
	scanf("%s",str);
	fprintf(fp,"%s",str);	
	fclose(fp);
	
// 读出 并 写进
	FILE* rfp = fopen("./copy.txt","r");
	char str2[26];
	fscanf(rfp,"%s",str2);
	printf("st2=%s\n",str2);
// 打开要 粘贴的文件
	FILE* paste = fopen("./paste.txt","a");
	fprintf(paste,"%s",str2);
	fclose(rfp);
	fclose(paste);

    return 0;
}


// *******fgetc fputc
#include <stdio.h>

int main(int argc, const char *argv[])
{
	FILE* fp = fopen("./gets.txt","r");
	if(fp == NULL)
	{
		perror("fopen");
		return -1;
	}
	FILE* fp_w = fopen("./paste2.txt","w");
	char c;
	while((c=fgetc(fp)) != EOF)
	{
		fputc(c,fp_w);
	}
	
	fclose(fp); fclose(fp_w);
	
	
	return 0;
}

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

例如:zhangsan 12345

lisi abcde

wangwu abc123

需求如下:c.若终端输入的账户存在,但是密码不正确,则输出密码错误d.若账户密码均正确,则输出登录成功

#include <stdio.h>
#include <string.h>

int main(int argc, const char *argv[])
{
	FILE* user = fopen("./users.txt","w+");
	
	int n;
	printf("请输入要插入的user个数:");
	scanf("%d",&n);
	
	char str1[26],str2[26];
	for(int i=0; i<n; i++)
	{
		printf("请输入user 和 userpassword:\n");
		scanf("%s %s",str1,str2);
		fprintf(user,"%s %s",str1,str2);
		fputc(10,user);
	}
	fclose(user);


	FILE* user2 = fopen("./users.txt","r");


	char str3[26], str4[26];
	printf("请输入 user 和 password:");
	scanf("%s %s",str3,str4);

	while( fscanf(user2,"%s %s",str1,str2) != EOF )
	{
		if( strcmp(str3,str1) == 0)
		{
			printf("\n账户存在\n");
			if( strcmp(str4,str2) == 0)
			{
				printf("密码正确,登录成功!!!\n");
				fclose(user2);
				return 0;
			}
			else
			{
				printf("密码错误!!!\n");
				fclose(user2);
				return 0;
			}
		}
	}
	printf("\n用户不存在!!!\n");
	fclose(user2);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值