2

値のデータ型はFloat. stringここでは、値がorではなく数値 (int,float) のみの場合、値を検証する必要がありますspecial character

例: 値 = 123df.125

文字列が混在している場合の値の確認方法。

ここで、警告メッセージを表示する必要があります"the value is not proper"

4

3 に答える 3

0

もう 1 つの C++11 ソリューション:

#include <iostream>
#include <string>
#include <stdexcept>

int main() 
{
    std::string wrong{"123df.125"};
    std::string totallyWrong{"A123"};
    std::string right{"123.125"};
    try
    {
        size_t pos = 0;
        float value = std::stof(right, &pos);
        if(pos == right.size())
            std::cout << "Good value:" << value << "\n";
        else
            std::cout << "Provided value is partly wrong!\n";

        pos = 0;
        value = std::stof(wrong, &pos);
        if(pos == right.size())
            std::cout << "Good value: " << value << "\n";
        else
            std::cout << "Provided value is partly wrong!\n";

        value = std::stof(totallyWrong, &pos);
    }
    catch(std::invalid_argument&)
    {
        std::cout << "Value provided is invalid\n";
    }
    return 0;
}
于 2013-10-25T10:35:02.230 に答える