小白C语言编程实战(23):文件读写(文件指针、加密)

这是《小白C语言编程实战》系列的第23篇。
上一篇:小白C语言编程实战(22):结构体的应用


题目

对给定的文件file1.txt,请编程读取该文件的内容,并将其内容“加密”,规则是:每个英文字母转换为其在26个字母表中后面第4个字母(比如字母A变成字母E,以此类推),26个字母首尾相连构成环;非英文字母则不作改变。加密后的密文写入文件file2.txt

提示和要求

(1)请定义文件指针,分别指向文件file1.txtfile2.txt,并通过指针读写相应文件。具体定义为:

FILE *pin, *pout; 

其中pin指向file1.txtpout指向file2.txt

注意:务必使用给定名字pin、pout定义文件指针!

参考代码

#include <stdio.h>
#include <stdlib.h>

#define N 1024
int main() {
	FILE *pin, *pout;
	
	pin = fopen("file1.txt", "rb");
	pout = fopen("file2.txt", "wb");
	char buf[N];
	size_t cnt;
	while((cnt=fread(buf,sizeof(char),N, pin)) > 0) {
		int i;
		for(i=0;i<cnt;i++) {
			char c = buf[i];
			if(c>='a' && c<='z') {
				int pos = (c-'a') + 4;
				if(pos > 25) {
					pos %= 26;
				}
				c = (char)('a'+pos);
			} else if(c>='A' && c<='Z') {
				int pos = (c-'A') + 4;
				if(pos > 25) {
					pos %= 26;
				}
				c = (char)('A'+pos);
			}
			//输出字符到pout文件 
			fputc(c, pout);
		}
	}
	//最后关闭打开的文件 
	fclose(pin);
	fclose(pout);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值