#include
#include
using namespace std;
char ch,;
void test(fstream &file) //检测是否打开
{
if (file.fail())
{
cout << "不能打开文件" << endl;
exit(0);
}
cout << "文件打开成功,并读取数据" << endl;
}
int main()
{
fstream ori_file; //原文件
fstream ser_file; //加密后的文件
ori_file.open("E:\\20163653\\myfile1.txt", ios::in);
ser_file.open("E:\\20163653\\myfile2.txt", ios::out | ios::in);
test(ori_file);
test(ser_file);
cout << "原来的文件内容为:" << endl;
while (!ori_file.eof()) //从原文件中读取字符并加密后放到加密文件中
{
ori_file.get(ch);
if (ori_file.fail())
break;
cout << ch;
ch = ch ^ 0x6a;
ser_file.put(ch);
}
//ori_file.close();
//ser_file.close();
//ser_file.open("E:\\20163653\\myfile2.txt", ios::in);
cout << endl << "加密后的文件内容为:" << endl;
while (!ser_file.eof())
{
ser_file.get(ch);
if (ser_file.fail())
break;
cout << ch;
}
//ser_file.close();
//ser_file.open("E:\\20163653\\myfile2.txt", ios::in);
//cout << endl;
cout << endl << "解密后的文件内容为:" << endl;
while (!ser_file.eof())
{
ser_file.get(ch);
if (ser_file.fail())
break;
ch = ch ^ 0x6a;
cout << ch;
}
cout << endl;
ser_file.close();
return 0;
}
一个加密文件的程序,运行结果是第二部输出加密文件时是屯屯屯屯,假如把先把文件关掉再打开就可以运行了,这是怎么回事
请各位大佬赐教