imは航空機に入力された見出しを確実にするために正規表現を使用しようとしていますが、私はそれを動作させることはできません。正規表現が動作しないC++
std::regex headingCheck{"^([0-9]|1[0-9]2[0])$"};
bool match = false;
while (!match)
{
if (std::regex_match(heading, headingCheck))
{
heading_ = heading;
}
else
{
std::cout << "Invalid heading, can only be between 0 and 360 degrees" << std::endl;
}
}
#
//Heading can only be between 0-360?
if (heading >= 0 && heading <= 360)
{
heading_ = heading;
}
else
{
std::cout << "Incorrect heading, heading can only be between 0 and 360" << std::endl;
}
私の代わりにこれを行うべきでしょうか?それは正確で信頼できるものですか?
ケーシングをint型にしようとすると、範囲を調べますか? - これはREの仕事ではありません。 –
正規表現で範囲を検証することは可能ですが、単純に 'int'に変換して範囲をチェックするより複雑です。その番号が提供されていることを確認するためにregexを使ってください。 – Slava
void航空機:: SetHeading(int見出し) { \t //見出しは0〜360の間でなければなりませんか? \t //正規表現を設定して入力と比較します \t std :: regex headingCheck {"^([0-9] | 1 [0-9] 2 [0])$"}; \t bool match = false; \t一方(マッチ!) \t {\t \t場合(STD :: regex_match(見出し、headingCheck)) \t \t { \t \t \t heading_ =見出し。 \t \t} \t \t他 \t \t { \t \t \tのstd :: coutの<< <<はstd :: ENDL "無効な見出し、のみ0と360度の間とすることができます"。 \t \t \t }セッターメソッドの場合は、どういう意味のチェック範囲ですか? – MurrackCarn