#include <iostream>
#include <fstream>
using namespace std;
//加密函數
void jiami(char* p, int n)
{
for (int i = 0; i < n; i++)
{
++*p++;//使文件中的每一個字節加一
}
}
int main(int argc, char* argv[])
{
if(argc != 3)
{
cout << "正確格式:" << argv[0] << "源文件 新文件" << endl;
return 1;
}
ifstream in(argv[1], ios::binary|ios::in);
ofstream out(argv[2], ios::binary|ios::out);
if(!in || !out)
{
cout << "文件打開錯誤!" << endl;
}
char buffer[1000];//緩沖區大小
while(in)//判斷in是否處於錯誤狀態
{
in.read(buffer, sizeof(buffer));
jiami(buffer, sizeof(buffer));
//不能直接用sizeof(buffer)因為可能沒有讀滿,gcount()返回上一次成功讀取的字節數
out.write(buffer, in.gcount());
}
in.close();
out.close();
return 0;
}