无法读取从文件生成的向量的正确值

时间:2015-07-27 08:50:15

标签: c++ vector atof root-framework

我试图逐行读取文本文件,然后将每列作为向量读取,但是当我尝试cout第一列时,它显示零,即没有正确读取文件。

int main(void)
{


    ifstream myfile ("data1.txt");
    string line;


    if (myfile.is_open())
   {

        int ln=1;

     while ( getline (myfile,line) )
     {      
      if(ln==1){ln++; continue;}
        istringstream iss(line);
        string word;
        vector<double> column;
        int w=1;
        while(iss >> word) 
        {   

            //double dw=atof(Form("%s",word));      
            column.push_back(atof(Form("%s",word)));
            cout<<column[0];

        w++;


        }

    ln++;
    cout<<"\n";
    }
   myfile.close();
  }
  //else
  else cout<<"Unable to open file"; 
  cout<<"\n";
  return ;
  }enter code here

2 个答案:

答案 0 :(得分:0)

push_back将元素作为向量的最后一个元素追加,而columns[0]始终引用向量的第一个元素。

是第一个元素0

还有其他问题吗?

(请解释什么是Form,在命令行中提供输入文件和输出的示例)

答案 1 :(得分:0)

首先学习如何缩进并一致地使用一些方案来插入有意义的空行。当你这样做时,你可以阅读自己的代码并弄清楚它是否正在按照你的想法行事。

二。在表格中保存表格(“%s”,单词)(现在称之为form_string)添加此行cout<<"form returns "<<form_string<<endl; 99.99%可能会打印零。

最后更改:cout<<column[0];cout<<column[0]<<" ";cout<<*(column.rbegin())<<" ";。后者打印出您读取的所有值,前者打印出您反复阅读的第一个值。