我试图逐行读取文本文件,然后将每列作为向量读取,但是当我尝试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
答案 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())<<" ";
。后者打印出您读取的所有值,前者打印出您反复阅读的第一个值。