c++数据计算

来源:百度知道 编辑:UC知道 时间:2024/09/23 23:47:48
我讲一个二进制文件读取到一个char型数组之后得到了个十进制数据
不过这个数据是以字符形式储存,例如65520392,怎么样才能将这个字符型的数据进行数学计算,例如除法

请各位指教

int atoi(string),不过那个字符串过大,没有合适的数据结构能存储

用标准C++的知识吧,里面有个stringstream,你可以这样做
先将这些数据读入vector<string>中,然后绑定istringstream,例如这样:
ifstream fin("D:\\1.txt",ifstream::binary);
char str;vector<char> vec;
while(fin.get(str))
{
vec.push_back(str);
}
vector<int> num; int a;
for(size_t i=0;i!=vec.size();++i )
{
istringstream C_fin(vec[i]);
C_fin>>a;
num.push_back(a);
}
这样就把文件以二进制方式打开读入vector<char>中,然后又转化为int,这样就可以用vector<int>里面的数据计算了,也就是实现你的功能,如果还不可以我们可以再讨论,代码我是随手写的,没有经过编译,你可以自己编译一下,《C++Primer》第三版中讲到这个知识了,你可以自己看一下,相信你能解决这个问题的

你将字符型转换为float或者int,然后数学计算。

c命令有atof(浮点数)和atoi(整型)

数学计算后再转换回字符
c有sprintf()函数可以;
语法:
string sprintf(string format, mixed [args]...);

ifstream fin("文件名");
long long num;
fin>>num;

按你的意思这个要进行大数运算了。
百度:大数运算!