文件操作《13》制造文件合成器

文件操作《13》制作文件合成器


本来想一直看郝斌老师的《C语言》视频教程可是看到后面发现郝斌老师的一些知识点没讲,例如文件操作,我边看小甲鱼老师的c语言中文件操作的那一部分看了几节后小甲鱼老师教我们做了一个文件合成器,这个文件合成器的功能非常简单,就是将一个压缩文件存放在一张图片中。
原理:运用到了DOS命令中的copy命令的原理

目的将该文件夹中的2.rar文件和1.jpg文件一起保存在3.jpg文件中

原理解释:
1 打开windows自带的DOS系统

文件操作《13》制造文件合成器


2选择合并文件的位置

文件操作《13》制造文件合成器


3查看文件的类型

文件操作《13》制造文件合成器


注: 会发现文件中有一个1.jpg文件和一个2.rar文件


在cmd命令行中查看1.jpg和2.rar:

首先在cmd命令行中输入D:找到文件的位置

文件操作《13》制造文件合成器


然后输入dir显示D盘中的文件

文件操作《13》制造文件合成器


显示D盘中的文件

文件操作《13》制造文件合成器


在cmd命令行中查看copy命令:输入copy /?

文件操作《13》制造文件合成器


执行copy命令 在命令行中输入:copy /b 1.jpg + 2.rar  3.jpg

 文件操作《13》制造文件合成器

观看图片会发现在文件夹中多了一个3.jpg文件且3.jpg的大小等于1.jpg+2.rar

文件操作《13》制造文件合成器


将3.jpg修改成3.rar

文件操作《13》制造文件合成器


打开3.rar后发现里面有1.jpg 和 2.rar

文件操作《13》制造文件合成器


通过C语言中的文件操作也可以实现上述功能
主要用到了C语言中的文件读写函数


程序代码:

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

void main()
{
	printf("请输入合成文件的文件名和路径:\n");

	char pic[10], txt[10], jpg[10];

	printf("图片:");
	scanf("%s",pic);

	printf("文本:");
	scanf("%s",txt);

	printf("图片:");
	scanf("%s",jpg);

	FILE *fp_pic, *fp_txt, *fp_jpg;

	fp_pic = fopen(pic,"rb");
	fp_txt = fopen(txt,"rb");
	fp_jpg = fopen(jpg,"wb");

	if(NULL == fp_pic)
	{
		printf("不能打开图片文件%s!\n",pic);
		
		exit(0);
	}

	if(NULL == fp_txt)
	{
		printf("不能打开文本文件%s!\n",txt);

		exit(0);
	}


	if(NULL == fp_jpg)
	{
		printf("不能写入文件%s!\n",jpg);

		exit(0);
	}

	char ch;

	while(!feof(fp_pic))
	{
		ch = fgetc(fp_pic);
		fputc(ch,fp_jpg);
	}
	fclose(fp_pic);

	while(!feof(fp_txt))
	{
		ch = fgetc(fp_txt);
		fputc(ch,fp_jpg);
	}
	fclose(fp_txt);

	system("pause");

	system("pause");
}


执行结果:

文件操作《13》制造文件合成器


使用文件合成器:

文件操作《13》制造文件合成器


使用文件合成器前:

文件操作《13》制造文件合成器


使用后

文件操作《13》制造文件合成器