0
我使用以下代碼從文件中讀取數據,但是我的問題是我只想從文件中的多個列中捕獲一些列。有沒有比我使用的方法更好的方法。使用fstream讀取選定的列
void Data::read_simulated (const string &filepath)
{
ifstream data_out (filepath.c_str());
if (!data_out)
cout<<"Failed to open"<<endl;
else
{
string id_p,age_p, dim_p, my_p, mcf_p, mcp_p, mcl_p, bw_p, bcs_p;
string dummy_line, g;
getline(data_out, dummy_line);
while(data_out>>age_p>>g>>g>>g>>g>>g>>g>>g>>bcs_p>>g>>g>>my_p>>g>>g>>bw_p>>g>>g>>dim_p>>g>>g>>g>>g>>g>>g>>g>>g>>g>>g>>g>>g>>g)
{
//s.cow_id.push_back(get_number(id_p));
if (get_number(age_p)>=1424.0 &&get_number(age_p)<=1733.0)
{
age_pre.push_back(age_p);
dim_pre.push_back(dim_p);
my_pre.push_back(my_p);
//mcf_obs.push_back(get_number(mcf_p));
// mcp_obs.push_back(get_number(mcp_p));
//mcl_obs.push_back(get_number(mcl_p));
bw_pre.push_back(bw_p);
bcs_pre.push_back(bcs_p);
}
}
data_out.close();
}
}
當我們將此函數添加到當前類「數據」。我們是否必須將Data ::聲明爲其他常規函數,以及Data.h中的函數原型如何。我試圖使用你建議的函數skip_row,但它不起作用。錯誤:未定義對'Data :: skip_row(std :: istream&,unsigned int)'|的引用 – hieu
@hieu它不必在頭文件中聲明,並且您的聲明與定義不匹配 - 在返回類型中缺少'&'。刪除你的「答案」,如果這工作,請,這應該是你的問題的編輯。 – LogicStuff