c++怎么操纵文件。
是可以实现的输入是文件的全路径(应包含文件的名字包括扩展名)"然后文件以二进制形式打开,对于文件内的每一个字符,加上输入的整数后作为新的字符写到新文件中"这部分你可以参考我回答的这个帖子 赞同
是可以实现的输入是文件的全路径(应包含文件的名字包括扩展名)"然后文件以二进制形式打开,对于文件内的每一个字符,加上输入的整数后作为新的字符写到新文件中"这部分你可以参考我回答的这个帖子 赞同
答案://类似一个简单的加密程序#include<iostream>
#include<fstream>
#include<string>
using namespace std;
char *encrypt(char * cCharArray,const int cCount); //加密函数,parm1待处理的字符数组,parm2实际处理字符数,也就是fstream.gcount()实际取得的值
char *reencrypt(char *cCharArray,const int ccount);//解密
void main()
{
char FileName[128];//源文件路径
char NewFileName[128];//目标文件路径
char *tmp=new char[64];//缓冲区
cout<<"please input file path :";
cin>>FileName;
cout<<"please output file path:";
cin>>NewFileName;
fstream f_bin_i;
fstream f_bin_o;
//cout<<FileName;
f_bin_i.open(FileName,ios::in|ios::binary);//打开指定源文件
if(!f_bin_i)
{
cout<<"open input file error";
return ;
}
f_bin_o.open(NewFileName,ios::out|ios::binary);//打开指定目标文件,没有则自动创建
if(!f_bin_o)
{
cout<<"open output file error";
return;
}
while(!f_bin_i.eof())
{
f_bin_i.read(tmp,64);//读取64个字符
//cout<<f_bin_i.gcount()<<endl;
f_bin_o.write(encrypt(tmp,f_bin_i.gcount()),f_bin_i.gcount());//写入指定字符,再写入之前对字符进行处理
//处理的字符个数由.gcount()实际取得的字符个数决定
}
f_bin_i.close();//关闭文件
f_bin_o.close();
delete []tmp;//释放
}
char *encrypt(char * cCharArray,const int cCount)
{//cout<<strlen(cCharArray)<<endl;
for(int i=0;i<cCount;i++)
char(cCharArray[i]+=1);//函数的实现,对指定字符数组运行+1,这里的1相当于加密编移量,自己定义
return cCharArray;
}
char *reencrypt(char * cCharArray,const int cCount)
{//cout<<strlen(cCharArray)<<endl;
for(int i=0;i<cCount;i++)
char(cCharArray[i]-=1);//反加密也就是解密,同上原理
return cCharArray;
}
//以上代码在VC6.0上运行通过。
//下面是运行结果对比图:
//原文件图:
//新文件图:
这里只是简单的做了acsii+1运算,输入文件路径为双斜杆,以上回答如有错误和疑问请,指出和追问。
读取文件盒写入文件网上都有,读出来可以强制转换成整型,然后存入数组,在存入文件。不难 赞同到高地网-我们的技术专家网站查看回答详情>>