Struct内の文字列を検索する

私は問題を抱えています。これを働かせるために、これで私を助けてください。ステーション名を検索するようユーザーに依頼しようとしています。

struct Trains 
{
    int Train_Id;                   //train ID
    string Station_Origin;             //Station of Origin
    string Destination_Station;        //Station of Destination
    int Departure_Time ;            //Departure Time
    int Arrival_Time ;              //Arrival Time
};

struct Trains  myArray[10];

struct station
{
    string intermediate_station1;      //intermediate_station1
    int Arrival_time1;            //Arrival time to station1 
    string intermediate_station2;      //intermediate_station2
    int Arrival_time2;            //Arrival time to station2 
    string intermediate_station3;    //intermediate_station1
    int Arrival_time3;            //Arrival time to station3   
};


struct station myArray1[3];

/*****************************************************************************/

int main ()
{
     /*  Setting up Train and Station Information  */ 
    int N_TRAIN;
    int n; 
    int a;

    do 
    {
         cout  << " Enter number of Trains on Track: " <> N_TRAIN;
         cout << endl;        
    }while(N_TRAIN > 10 || N_TRAIN < 0);

    for(n=0; n < N_TRAIN; n++)
    {
        while((cout<<" Enter Train ID: ")&&( (cin>>myArray[n].Train_Id)||myArray[n].Train_Id <0))
        {
            cout<<" Invalid Input! Please Enter Train ID: "<<< " Name of Station of Origin: ";
        cin >> myArray[n].Station_Origin;

        cout << " Name of Destination Station: ";
        cin >> myArray[n].Destination_Station;

        while((cout<<"Enter Departure Time: Please Enter 24hr!")&&(!(cin>>myArray[n].Departure_Time)||myArray[n].Departure_Time < 0))
        {
            cout<<" Invalid Input! Enter Departure Time: Please Enter 24hr !"<<<" Enter Arrival Time: Please Enter 24hr! ")&&(!(cin>>myArray[n].Arrival_Time)||myArray[n].Arrival_Time < 0))
        {
            cout<<" Invalid Input! Enter Arrival Time: Please Enter 24hr! "<<< " Name of Station of intermediate station1: ";
        cin >> myArray1[a].intermediate_station1;    

        while((cout<<" Enter Arrival Time For intermediate station1: Please Enter 24hr! ")&&(!(cin>>myArray1[a].Arrival_time1)||myArray1[a].Arrival_time1 < 0))
        {
            cout<<" Invalid Input! Enter Arrival Time: Please Enter 24hr! "<<< " Name of Station of intermediate station2: ";
        cin >> myArray1[a].intermediate_station2;


        while((cout<<" Enter Arrival Time For intermediate station2: Please Enter 24hr! ")&&(!(cin>>myArray1[a].Arrival_time2)||myArray1[a].Arrival_time2 < 0))
        {
            cout<<" Invalid Input! Enter Arrival Time For intermediate station2: Please Enter 24hr!"<<< " Name of Station of intermediate station3: ";
        cin >> myArray1[a].intermediate_station3;    

        while((cout<<" Enter Arrival Time For intermediate station3: Please Enter 24hr!")&&(!(cin>>myArray1[a].Arrival_time3)||myArray1[a].Arrival_time3 < 0))
        {
            cout<<" Invalid Input! Enter Arrival Time For intermediate station3: Please Enter 24hr!"<< N_TRAIN ;n++)
        {       

            cout << " Enter the Name of Departure Station: " ;
            cin >> origin;

            origin = searchfs();
            if (origin = myArray[n].Station_Origin )
               cout << "Trains Departs " << " " <<< "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<< "Trains Departs " << " " <<< "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station1<< "at" << " " << myArray1[a].Arrival_time1 << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station2 << "at" << " " << myArray1[a].Arrival_time2 << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station3<< "at" << " " << myArray1[a].Arrival_time3 << " " << " Hours " <<< " Train doesnt not Depart at "<< " " << origin << endl;
    }
}
7
エラーは何ですか?
追加された 著者 rerun,
元の要件は何ですか?構造は本当に3つのステーションを含むと思われますか?
追加された 著者 Thomas Matthews,
また、 cout をループ条件に入れないでください。ちょうど混乱します。
追加された 著者 Mooing Duck,
それは、あまりにも多くのコードを私たちの上にダンプする、あなたのアプローチについてうまくいかなかったことについての詳細があまりにも少ない。
追加された 著者 wkl,
@Thilo - 申し訳ありませんが、実際には私のオリジナルの編集の1つでした。間違った書式設定オプションを使用しました。
追加された 著者 wkl,
さらに、HTMLエンティティを実際の文字で置き換えることができます。これにより、コードを読みやすくすることができます。例えば。 &lt; の代わりに <
追加された 著者 Thilo,
はい、これはプログラム上でこれを簡単にするためにOrigin StationとDestination Stationを持つことを意味します。各レコードには3つの中間ステーションがあります。
追加された 著者 David,

2 答え

いくつかの場所では、次の例のように等価性をテストすることを意図した割り当て(単一の = )(double ==

if (origin = myArray[n].Station_Origin)

さらに、 origin が次のように定義されている間、 Station_Origin および intermediate_station1/2/3std :: string int文字列int に割り当てたり比較したりしようとしています。

2
追加された
@David:あなたが示したコードだけに基づいて、比較したい場所で = の代わりに == 演算子を使用します。さらに、 origin を文字列変数に変更したいと思うかもしれません。つまり、 searchfs()関数を変更して文字列を返すことも意味します。
追加された 著者 Blastfurnace,
その検索を修正するためには何をする必要がありますか?私は他のすべてのものが働いていますが、その部分はありません。私がプログラムにしたいのは、ステーションが次のストリングに行くのでなければそれを置いていればステーション名を入力する選択肢を与え、次のストリングに行くのでなければそのストリングを検索しますステーションが見つからない場合はステーションが見つかるまで終了します。
追加された 著者 David,

何が起こっているかを教えてくれていないので、コードをスキャンして推測することしかできません。私を襲うものは次のとおりです。

for(n=0; n < N_TRAIN; n++)
{
    ...
}      
else if (choice == 3)
{
}

choice は定義されていません。
できるだけ多くのエラーメッセージを解決して、あなたに絡み合っている特定のものを教えてください。

0
追加された
OK私はintからintにStringを変更します。何がわかりません "origin = Searchfs()"と私は()内に配置する必要があるかわからない
追加された 著者 David,