用Seekg()C 倒入流

  • 本文关键字:Seekg c++ seekg
  • 更新时间 :
  • 英文 :


我是C 的新手。这是一个实际运行的程序的一部分,没有裸露。它读取一条线计数,每行有多少(aux_d),如果它等于昏暗的(dimention),则将其推入向量。

读取行,然后倒流iStringstream fss。但是,当我打印我的v_db [i](vector_database)时,它只会将零加载到坐标类中。

coordinates aux_c;
double aux_d;

...做事,然后

while(std::getline(filestream,line)){
    i=0;
    std::istringstream fss(line);
    while( fss >> aux_d )
        i++;
    if (i != dim){
        std::cerr << "Wrong Tiberium_Base coordinates // "
                  << "Check line -"
                  << lc
                  << "-"
                  << std::endl;
        lc++;          
        continue;
    } 
    fss.seekg(0);
    fss >> aux_c;
    v_db.push_back(aux_c);
    lc++; 
}

所以我只是为了使它起作用。

    std::istringstream fss2(line);
    fss2 >> aux_c;
    v_db.push_back(aux_c);
    lc++; 

我想知道这里发生的事情,因为我以前使用过同样的目的使用过Seekg,并且根本没有任何问题(实际上在此程序中)。谢谢。

完成循环后。

while( fss >> aux_d )
    i++;

fss具有failbit集。您需要在使用流之前清除。

while( fss >> aux_d )
    i++;
...
// Clear the error states of the stream.
fss.clear();
fss.seekg(0);
fss >> aux_c;

最新更新