为什么下面的程序加密后的文件解密后只有一部分被解密?
/*************************************
名称:文本文件加密程序
版本:1.0
参数:输入文件名 输出文件名
开发环境:VC++6.0EN with SP6,Winxp
*************************************/
# include <iostream.h>
# include <fstream.h>
void main(int argc,char* argv[])
{
int i=0;
char buf,ch,pwd[16];
if (argc!=3)
{
cerr<<"Syntax error!"<<endl;
return;
}
cout<<"Please input password:";
cin>>pwd;
ifstream ifile(argv[1]);
if (!ifile)
{
cerr<<"File can't open"<<endl;
return;
}
ofstream ofile(argv[2]);
if (!ofile)
{
cerr<<"File can't write"<<endl;
return;
}
while(!ifile.eof())
{
if (!pwd[i]) i=0;
ch=ifile.get();
buf=ch^pwd[i];
ofile.put(buf);
i++;
}
ifile.close();
ofile.close();
cout<<"Done!";
}