優れたアドバイスの後、私は構造体を定義し、それをファイルから読み込んだデータで埋めてベクターにプッシュしました。ニース!!!誰かが、私がベクトルにプッシュしたi番目の構造体のメンバーのコンテンツをどのようにコールバックできるか今私に教えてもらえますか?構造体のベクトルの内容を使用する
構造体の定義:
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;
私は問題なくコンパイルされますが、実行時に、私は、セグメント違反信号を取得します。初心者なので、何が起こっているのか分かりません。
すべてのヘルプは大歓迎です!事前に
おかげで、
よろしく、i
の値が何であれ
ステファン
どのようにして '' Config_Data'インスタンスとCDATA_SURF'を満たしていますか?間違ったサイズのベクトルを使用しているようです。 –
関連するコードを表示してください。あなたが見ている構造はOKですが、私はあなたがそれらを使用する方法にバグがあると確信しています。 –
実際、私はpush_backの前に構造体を埋める部分を忘れていました。 – noste99