【发布时间】:2015-06-06 00:13:37
【问题描述】:
我有以下代码从流字符串中检索双精度值,但由于某种原因,我无法遍历流,它只是加载流中的第一个值,然后退出 while,在这两种情况下(i 和 f ) 见下文:
std::string pois_fija_lista = argv[11];
std::string pois_flotante_lista= argv[12];
std::vector<double> vector_pois_fija(8), vector_pois_flotante(8);
std::stringstream ss_fija(pois_fija_lista), ss_flotante(pois_flotante_lista);
int i=0;
while (ss_fija >> i || ss_fija.eof())
{
vector_pois_fija.push_back(i);
if (ss_fija.peek() == ';')
ss_fija.ignore();
}
int f=0;
while (ss_flotante >> f || ss_flotante.eof())
{
vector_pois_flotante.push_back(f);
if (ss_flotante.peek() == ';')
ss_flotante.ignore();
}
仅供参考,从 argv 获取的 stringstream 中的值是: -461.3175;-417.031983203125;-523.8393;-417.031983203125;-491.6311;-518.393083203125;-490.6838;-512.709283203125
和
-102.287501220703;-54.613701647949;-164.809301220703;-54.613701647949;-132.601101220703;-155.974801647949;-131.6194801220016;-131.6594801220016;-4
【问题讨论】:
标签: c++ parsing stringstream peek