在出色的建議之後,我定義了一個結構體,用從文件中讀取的數據填充它並將其推送到一個向量上。尼斯!現在有人可以告訴我如何回調我推向矢量的第i個結構成員的內容嗎?使用向量中Struct的成員的內容
結構定義:
struct Config_Data
{
int Surf_Index;
std::string Surf_Mnemo;
double Surf_Param[5];
std::string Surf_Comm;
};
該結構的實例化和矢量的定義:
Config_Data SURF;
std::vector<Config_Data> CDATA_SURF;
爲了填充結構:
for (i=1;i<=10;i++)
{
getline(INP_Stream, Line, delim_Config);
SURF.Surf_Index=atoi(Line.c_str());
getline(INP_Stream,SURF.Surf_Mnemo,delim_Config);
SURF.Surf_Param[0]=Mnemo_list[SURF.Surf_Mnemo];
for (j=1;j<=Mnemo_list[SURF.Surf_Mnemo];j++)
{
getline(INP_Stream,Line,delim_Config);
SURF.Surf_Param[j]=strtod(Line.c_str(),NULL);
}
getline(INP_Stream, SURF.Surf_Comm,delim_Line);
CDATA_SURF.push_back(SURF);
cout<<CDATA_SURF.size()<<endl;
string aaa=CDATA_SURF[i].Surf_Comm;
}
正如你可以看到我從csv文件讀取字符串。我並不滿意int或double類型的字符串轉換方式,但它似乎可行。
我想叫向量中的第i個結構及其成員Surf_Comm方式:
std::string aaa=CDATA_SURF[i].Surf_Comm;
我編譯沒有問題,但在運行時我得到段違規信號。作爲一名初學者,我不知道發生了什麼。
所有幫助非常歡迎!
由於提前,
問候,
斯特凡
你如何填補'Config_Data'情況下'CDATA_SURF'?看起來你使用的尺寸不正確。 –
向我們展示相關的代碼。你看起來確實很好,我確信你使用它們的方式有一個錯誤。 –
的確,我忘記了在push_back之前填充結構的部分。 – noste99