100分帮小弟我改个输入方式
100分帮我改个输入方式
找了一个大数的程序,分析了一下,想把输入改成键盘输入,试了几种方法没成功,没思路了,可能是程序没看懂,哪位帮我改改:
hugeint.h文件
#include <iostream.h>
class hugeint
{
public:
hugeint(int);
hugeint(long);
hugeint(hugeint&);
~hugeint();
inline long getsize(){return size;};
inline int elem(long index){return data[index];};
hugeint& operator = (char*);
hugeint& operator = (hugeint&);
protected:
void inverse();
void clear();
int inc();
int *data;
long size;
//friends:
friend ostream& operator < < (ostream&,hugeint&);
friend hugeint operator + (hugeint&,hugeint&);
friend hugeint operator - (hugeint&,hugeint&);
friend hugeint operator * (hugeint&,hugeint&);
friend hugeint operator / (hugeint&,hugeint&);
friend hugeint operator % (hugeint&,hugeint&);
friend int add(hugeint&,hugeint&,int,int bitm=0);
friend int mul(hugeint&,int);
friend int div(hugeint&,hugeint&,hugeint&,hugeint&);
};
hugeint.cpp文件
#include <string.h>
#include <iomanip.h>
#include "hugeint.h "
#define ERRORMSG "Over Flow! "
//public:
hugeint::hugeint(int n)
{
size=(long)n/4;
data=new int[size];
for(long i=0;i <size;++i)data[i]=0;
}
hugeint::hugeint(long n)
{
size=n/4;
data=new int[size];
for(long i=0;i <size;++i)data[i]=0;
}
hugeint::hugeint(hugeint& a)
{
size=a.getsize();
data=new int[size];
for(long i=0;i <size;++i)data[i]=a.elem(i);
}
hugeint::~hugeint()
{
delete[]data;
}
//protected:
void hugeint::inverse()
{
for(long i=0;i <size;++i)data[i]=9999-data[i];
}
void hugeint::clear()
{
for(long i=0;i <size;++i)data[i]=0;
}
int hugeint::inc()
{
int s=1;
for(long i=0;s&&i <size;++i)
{
int t=data[i]+s;
data[i]=t%10000;
找了一个大数的程序,分析了一下,想把输入改成键盘输入,试了几种方法没成功,没思路了,可能是程序没看懂,哪位帮我改改:
hugeint.h文件
#include <iostream.h>
class hugeint
{
public:
hugeint(int);
hugeint(long);
hugeint(hugeint&);
~hugeint();
inline long getsize(){return size;};
inline int elem(long index){return data[index];};
hugeint& operator = (char*);
hugeint& operator = (hugeint&);
protected:
void inverse();
void clear();
int inc();
int *data;
long size;
//friends:
friend ostream& operator < < (ostream&,hugeint&);
friend hugeint operator + (hugeint&,hugeint&);
friend hugeint operator - (hugeint&,hugeint&);
friend hugeint operator * (hugeint&,hugeint&);
friend hugeint operator / (hugeint&,hugeint&);
friend hugeint operator % (hugeint&,hugeint&);
friend int add(hugeint&,hugeint&,int,int bitm=0);
friend int mul(hugeint&,int);
friend int div(hugeint&,hugeint&,hugeint&,hugeint&);
};
hugeint.cpp文件
#include <string.h>
#include <iomanip.h>
#include "hugeint.h "
#define ERRORMSG "Over Flow! "
//public:
hugeint::hugeint(int n)
{
size=(long)n/4;
data=new int[size];
for(long i=0;i <size;++i)data[i]=0;
}
hugeint::hugeint(long n)
{
size=n/4;
data=new int[size];
for(long i=0;i <size;++i)data[i]=0;
}
hugeint::hugeint(hugeint& a)
{
size=a.getsize();
data=new int[size];
for(long i=0;i <size;++i)data[i]=a.elem(i);
}
hugeint::~hugeint()
{
delete[]data;
}
//protected:
void hugeint::inverse()
{
for(long i=0;i <size;++i)data[i]=9999-data[i];
}
void hugeint::clear()
{
for(long i=0;i <size;++i)data[i]=0;
}
int hugeint::inc()
{
int s=1;
for(long i=0;s&&i <size;++i)
{
int t=data[i]+s;
data[i]=t%10000;