0

こんにちは、誰か助けてください。入力に整数のみが含まれていることを確認する必要があります。私は関数を使用していると推測していisDigitますが、これを使用して整数を確認する方法がわかりません。

私は C++ を使用して MSI とやり取りしているので、次のように整数を取得しています。

hr = WcaGetProperty(L"LOCKTYPE",&szLockType);
ExitOnFailure(hr, "failed to get the Lock Type");

szLockTypecharに変更してから、各文字をスキャンするために使用する必要があると思いますがisdigit、これを実装する方法がわかりません。どんな助けでも大歓迎です。Ps は初心者なので、これが本当に些細な質問である場合はご容赦ください..:)

4

2 に答える 2

2

std :: stoi()を使用します。文字列が整数値でない場合は、例外が発生します。

于 2012-09-28T11:15:05.667 に答える
0

szLockTypeのタイプは何ですか?

それはnullで終了するchar-stringですか?

次に、配列構文を使用して個々の文字を取得できます。

for(int i = 0; i < std::strlen(szLockType); i++) {
    if(!std::isDigit(szLockType[i])) {
         // it contains a non-digit - do what you have to do and then...
         break; // ...to exit the for-loop
    }
}

それともstd::stringですか?その場合、構文は少し異なります。

for(int i = 0; i < szLockType.length(); i++) {
    if(!std::isDigit(szLockType.at(i)) {
         // it contains a non-digit - do what you have to do and then...
         break; // ...to exit the for-loop
    }
}
于 2012-09-28T11:16:28.810 に答える