I cannot get the atof()
function to work. I only want the user to input values (in the form of decimal numbers) until they enter '|'
and it to then break out the loop. I want the values to initially be read in as strings and then converted to doubles because I found in the past when I used this method of input, if you input the number '124' it breaks out of the loop because '124' is the code for the '|' char.
I looked around and found out about the atof()
function which apparently converts string
s to double
s, however when I try to convert I get the message
"no suitable conversion function from std::string to const char exists".
And I cannot seem to figure why this is.
void distance_vector(){
double total = 0.0;
double mean = 0.0;
string input = " ";
double conversion = 0.0;
vector <double> a;
while (cin >> input && input.compare("|") != 0 ){
conversion = atof(input);
a.push_back(conversion);
}
keep_window_open();
}
You need
That would be the "suitable conversion function" in question.
std::string::c_str
Documentation:You can also use the
strtod
function to convert a string to a double:You can look up the documentation for
strtod
(e.g.man strtod
if you're using Linux / Unix) to see more details about this function.