当前位置:编程学习 > C/C++ >>

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运算,输入文件路径为双斜杆,以上回答如有错误和疑问请,指出和追问。

读取文件盒写入文件网上都有,读出来可以强制转换成整型,然后存入数组,在存入文件。不难 赞同
到高地网-我们的技术专家网站查看回答详情>>

上一个:C++之类的书籍
下一个:C++学生管理系统

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,