How to convert user input char to Double C++

Dozar picture Dozar · Apr 7, 2015 · Viewed 18.7k times · Source

I'm trying to figure out a method of taking a user input character and converting it to a double. I've tried the atof function, though it appears that can only be used with constant characters. Is there a way to do this at all? Heres an idea of what I'd like to do:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

int main(){

    char input;
    double result;

    cin >> input; 

    result = atof(input);
}

Answer

user4098326 picture user4098326 · Apr 7, 2015

atof converts a string(not a single character) to double. If you want to convert a single character, there are various ways:

  • Create a string by appending a null character and convert it to double
  • Subtract 48(the ASCII value of '0') from the character
  • Use switch to check which character it is

Note that the C standard does not guarantee the character codes are in ASCII, therefore, the second method is unportable, through it works on most machines.