0

文字列入力をスイッチ ケース パラメーターとして取得するにはどうすればよいですか? 私はint文字列ではなくそれを行うことができます。

入力を使用している場合、以下のコードは機能しますintが、文字列に変更すると機能しません。

#include <iostream>
#include <sstream>
#include <string>
#include <math.h>
class MissionPlan //start of MissionPlan class
{
    public:
    MissionPlan();
    float computeCivIndex(string,int,int,float,float);
}; //end of MissionPlan class

LocationData::LocationData()
{
    switch(sunType)
    {
        case "Type A": //compute 
                      break;
        case "Type B": //compute
                       break;
         //and many more case..
        default: break;
    }
}
int main()
{

    for(;;)
    {
    MissionPlan plan;
    }
    return 0;
}
4

2 に答える 2

3

C++ の文字列に対して switch ステートメントを使用することはできません。申し訳ありません。ここで最善の策は、列挙型を使用することです。列挙型を使用したくない場合、他の唯一のオプションは、文字列が等しいかどうかをチェックする一連の if else を実行することです。

于 2012-10-22T17:38:48.640 に答える
0

switchC/C++ は、文字列を含むステートメントをサポートしていません。if-else-if代わりに使用してください:

if (sunType.compare("Type A") == 0) {
     //compute
} else if (sunType.compare("Type B") == 0) {
     // compute
} else {
     // default
}
于 2012-10-22T17:39:19.870 に答える