类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
初学C++,这段代码原来是C的,我想改成C++的。。
改了一点,再也不会了,请各位大侠帮忙。。
谢谢!!!
网友回答:
#include <iostream>
#include <cstdio>
#include <fstream>
#include <stdlib>
using namespace std;
int main()
{
char mm0[40] = {
0x29,0x77,0xec,0x37,0xf2,0xc8,0x9c,0xfa,
0x69,0xd2,0x28,0xe6,0xbc,0x3a,0x8a,0x60,
0xfb,0x18,0x7b,0x36,0x5a,0xfe,0xdf,0xb1,
0xd8,0x78,0x13,0x43,0x60,0x23,0xb1,0x33,
0x9b,0xed,0x79,0x5b,0x3d,0x39,0x7c,0x2a
};
/* 这是40个原始数据 */
char mm1[40],mm2[40];
/* mm1用来存放加密后的40个密钥;mm2用来存放密码 */
int i,k;
fstream dbfile("c:\\myacc.mdb",ios_base::in | ios_base::binary);
if (! dbfile)
{
cout<<"not open database!"<<endl;
abort();
}
dbfile.seekg(0x42L, ios_base::beg);
dbfile.read(mm1,40); /* 读取密钥 */
for (i=0;i<40;i++)
mm2[i]=mm0[i]^mm1[i];/* 原始数据与密钥异或 */
dbfile.close();
k=0;
for (i=0;i<40;i++){
if (mm2[i]!=0){
k=1;
break;
}
}
if (k==0) /* k为0,表示未设密码 */
cout<<"no password!"<<endl;
else
{ /* k为1,表示设有密码 */
cout<<"the password is:"<<endl;
for (i=0;i<40;i=i+2) /* 打印密码 */
cout<<i<<endl;
}
return 0;
}
//vc6没错误
#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
char mm0[40] = {
0x29,0x77,0xec,0x37,0xf2,0xc8,0x9c,0xfa,
0x69,0xd2,0x28,0xe6,0xbc,0x3a,0x8a,0x60,
0xfb,0x18,0x7b,0x36,0x5a,0xfe,0xdf,0xb1,
0xd8,0x78,0x13,0x43,0x60,0x23,0xb1,0x33,
0x9b,0xed,0x79,0x5b,0x3d,0x39,0x7c,0x2a
};
/* 这是40个原始数据 */
char mm1[40],mm2[40];
/* mm1用来存放加密后的40个密钥;mm2用来存放密码 */
int i,k;
fstream dbfile("c:\\\\myacc.mdb",ios_base::in | ios_base::binary);
if (! dbfile)
{
cout<<"not open database!"<<endl;
abort();
}
dbfile.seekg(0x42L, ios_base::beg);
dbfile.read(mm1,40); /* 读取密钥 */
for (i=0;i<40;i++)
mm2[i]=mm0[i]^mm1[i];/* 原始数据与密钥异或 */
dbfile.close();
k=0;
for (i=0;i<40;i++){
if (mm2[i]!=0){
k=1;
break;
}
}
if (k==0) /* k为0,表示未设密码 */
cout<<"no password!"<<endl;
else
{ /* k为1,表示设有密码 */
cout<<"the password is:"<<endl;
for (i=0;i<40;i=i+2) /* 打印密码 */
cout<<i<<endl;
}
return 0;
}