附上个人文章地址
推荐点此此阅读效果更佳
1.编写C语言代码显示文件本身
在此实验中,先在自己的电脑中建立一个txt文本文件,并输入数据。同时需要知道该文件的保存路径(需要写在代码里)
直接上代码:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
int a[80];
if((fp=fopen("F:\\file1.txt","r"))==NULL)//查看文件是否存在,文件所在路径需要根据自己电脑的实际位置进行修改!!!
{
printf("no found this file\n");
exit(0);//如果不存在就退出
}
for(int i=0;(!feof(fp));i++)//用for循环读取文件中的数据并显示
{
fscanf(fp,"%d",&a[i]);//读取数据
printf("%d\n",a[i]);//显示数据
}
fclose(fp);
}
效果图:
该文件内容
运行代码后显示:
2.编程实现文件加密解密
将文件file1.txt中的每一字符与0x6a异或(异或的运算符号为^)变成另一个字符存入文件temp.txt中。然后打开加密的temp.txt文件,再用同样异或方法解密输出解密内容到file2.txt中。
要求:
⑴测试文本学生自己创建一个文件file1.txt。
⑵用文本读写模式加密解密,比较原件、加密文件和解密件的内容是否一致;
⑶用二进制读写模式加密解密,比较原件、加密文件和解密件的内容是否一致;
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(void){
FILE *sou=NULL,*des=NULL;
int ch,key=0x6a;
sou=fopen("d:\\file1.txt","r");//查看file1.txt文件是否存在
des=fopen("d:\\tmp.txt","w");//查看tmp.txt是否存在
if(NULL==sou||NULL==des)
exit(0);//不存在则退出
while(1){
ch=fgetc(sou);//获取file1.txt内的数据
if(feof(sou))
break;//读取结束退出循环
ch^=key;//文件内容与0x6a进行异或运算
fputc(ch,des);//将结果保存在tmp.txt中
}
fclose(sou);
fclose(des);
//以下则是与以上操作相同,将tmp.txt的数据与0x6a进行异或运算,最后结果保存在文件file2.txt中
sou=fopen("d:\\tmp.txt","r");
des=fopen("d:\\file2.txt","w");
if(NULL==sou||NULL==des)
exit(0);
while(1){
ch=fgetc(sou);
if(feof(sou))
break;
ch^=key;
fputc(ch,des);
}
fclose(sou);
fclose(des);
return 0;
}
代码运行结果图
file1.txt
file2.txt
tmp.txt
3.编程实现文件的合并
该程序是将两个已存在的文件内容进行合并,需要输入两个文件的地址,代码如下:
#include<stdio.h>
int main()
{
int len=0;
int len2=0;
FILE* stream;
FILE* stream1;
char buf[50];
char buf1[50];
char text[1024];
printf("input anfile path to open:");//输入一个文件的地址
scanf("%s",buf);
stream=fopen(buf,"r+");
fseek(stream,0,SEEK_END);//检索
printf("intput another file name: \n");//输入另一个文件的地址
scanf("%s",buf1);
stream1=fopen(buf1,"r+");
fseek(stream1,0,SEEK_END);//检索
len=ftell(stream1);//获取第二个文件数据内容长度
fseek(stream1,0,SEEK_SET);//使指针处于第二个文件内容的开头
fread(text,len,1,stream1);//获取第二个文件内容
fwrite(text,len,1,stream);//写入到第一个文件中
fclose(stream);
fclose(stream1);
remove(buf1); //移除第二个文件
return 0;
}
运行效果图
file1.txt
file2.txt
运行时:
结果: