{
CFile file,fp;
unsigned int Ke=5,mod=119,ubuf;
char buffer[1];
CString name;
file.Open(m_xming,CFile::modeRead); // m_xming是明文路径
fp.Open(m_milu,CFile::modeWrite); //m_milu是密文路径
while(file.Read(buffer,1))
{
ubuf=atoi(buffer);
ubuf=GetOutNum(ubuf,Ke,mod);
fp.Write((unsigned int *)ubuf,5); //就这段代码有错误 不知道怎么改 我想把读到的数据通过GetOutNum转换然后在写入fp中 可是运行时候总是报Debug assertion Failed
}
file.Close();
fp.Close();
}
unsigned int xxx::GetOutNum(unsigned int b, unsigned int e, unsigned int d)
{
unsigned int i;
unsigned int outNum= 1;
for( i=0; i < e; i++)//=========用了乘的模 等于 模的乘
{
outNum *= b;
if( outNum >= d )
{
outNum %= d;
}
if(!outNum)
return outNum;
}
return outNum%d;
}
高手棒改改
CFile file,fp;
unsigned int Ke=5,mod=119,ubuf;
char buffer[1];
CString name;
file.Open(m_xming,CFile::modeRead); // m_xming是明文路径
fp.Open(m_milu,CFile::modeWrite); //m_milu是密文路径
while(file.Read(buffer,1))
{
ubuf=atoi(buffer);
ubuf=GetOutNum(ubuf,Ke,mod);
fp.Write((unsigned int *)ubuf,5); //就这段代码有错误 不知道怎么改 我想把读到的数据通过GetOutNum转换然后在写入fp中 可是运行时候总是报Debug assertion Failed
}
file.Close();
fp.Close();
}
unsigned int xxx::GetOutNum(unsigned int b, unsigned int e, unsigned int d)
{
unsigned int i;
unsigned int outNum= 1;
for( i=0; i < e; i++)//=========用了乘的模 等于 模的乘
{
outNum *= b;
if( outNum >= d )
{
outNum %= d;
}
if(!outNum)
return outNum;
}
return outNum%d;
}
高手棒改改
fp.Write(&ubuf, sizeof(ubuf));
?
=============
你将读得的数字转为字符,所以大小设为1,但是字符必须用\0结束,所以出错了.
改成 char buffer[2];
fp.Write(&ubuf, sizeof(ubuf)); 这样些是可以运行 但是达不到效果 改成2 也没变化