Я пытаюсь преобразовать строку в double изнутри функции, а затем вернуть логическое значение, которое будет изменяться на основе того, было ли преобразование успешным или нет. МОЙ ВОПРОС - как я могу проверить, не изменилось ли преобразование?Преобразование строки в двойную функцию
//function definitions
bool isValidDouble(string inputString);
bool isValidDouble(string inputString)
{
//Declarations
bool validDouble = true;
double convertedDouble = 0;
convertedDouble = atof(inputString.c_str());
// validDouble = false;
// convertedDouble = 0;
return validDouble;
}
// CODE FROM MAIN
int main()
{
string userInput = "";
cout << "Please Enter a number to convert. ";
cin >> userInput;
isValidDouble(userInput);
return 0;
}
С 'atof', вы не можете. Если преобразование завершается неудачно, оно просто возвращает '0.0', что, очевидно, остается действительным числом. – aruisdante
Любые предложения по другому способу покрытия, которые могут потерпеть неудачу и позволят мне проверить? – Ryan
use strtod() - позволяет проверить успешность преобразования. – Shaggi