一个C++问题,关于sting流的

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:17:50
现有一个abc.txt文件,内含一些数对,找出全部积为16!的数对,并输出。主要浮点数的比较方法。
TXT文件内容为:
112233 445566
8717829120000 2.4
16000000 1307674.368
10000 2092278988.8
1234567 890123
sting流问题我懂点,用geling istingstream
sin>>...
就是不知道任何不满足条件的数组输出
希望大家给个意见 任何解决输出问题等、
我的程序如下 希望大家给个意见
#include<iostream>
#include<sstream>
#include<fstream>
using namespace std;
int main()
{
ifstream in("abc.txt");
long double A;
for( int i=1;i<=16;++i)
A*=i;
long double sum=1,a;
for(istringstream sin(s);sin>>a;sum*=a);
接下来想到题目要输出满足的数组就不知道做了 希望大家提点建议``
分就先标20 采用后加到100分 谢谢
新手错误 应该是string流的 呵呵
有string流 好象也许C语言没有
C++里面有这个STRING流的 在网上就可以查到
二楼的 我是用string做的 希望老大补充下
谢谢拉

有string流么?
string不是字符串类么?
那我没听说过~~我也是学C++的~~

#include<iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream infile("abc.txt");
long A = 1;
for(int i=2;i<=16;++i)
A*=i;
double a,b;
while(!infile.eof())
{
infile>>a>>b;
if(long(a*b) == A) cout << a << ' ' << b << endl;
}
infile.close();
}

这里把a*b的结果强制转换成了整数型,再与16!比较,实际上这种做法是有问题的。如果要比较浮点数是否相等,应该看两数的差是否在一个很小的范围内,比如0.001