What is the best way to convert a string to float(in c++), given that the string may be invalid. Here are the type of input
20.1
0.07
x
0
I used strtof which works quite well but the issue is it returns 0 both on error as well as when string "0" is passed into the function.
The code I am using is pretty simple
float converted_value = strtof(str_val.c_str(), NULL);
if (converted_value == 0) {
return error;
}
Is there any way I could fix this code so I can differentiate between string 0 and error 0? what are the disadvantages if I use scanf?