double und char unterscheiden (cin)

Hallo,

und zwar habe ich folgendes problem ich benötige eine eingabe welche entweder ein char oder ein double sein kann. Ich weiß nicht wie ich es erklären soll aber ich versuchs, also das programm wartet auf eine eingabe, ist die eingabe z.b. 'r' so wird dies in ein array von chars gespeichert, ist die eingabe jedoch 2.5 so wird dies in ein array von doubles gespeichert. Wenn ich aber zum Beispiel die Eingabe in ein char speichere so verliere ich von 2.5 alles bis auf den hinteren teil. Und ich weiß nicht wie ich einen typcast von einem char array auf ein double vornehmen soll?
Also wenn in dem Array steht "2.5" das ich das jetzt in eine double zahl verwandeln kann.

Beispielablauf:
Eingabe: 4.52
Wird in double array gespeichert
Eingabe: f
Wird in char array gespeichert



Wäre euch sehr dankbar wenn ihr mir helfen könntet.
 
Du könntest statt cin getch (oder das Pendant unter Linux) verwenden und die Eingabe in einem temporären char-Array speichern. Sobald dann ein Enter eingegeben wird kann das temporäre Array auf den eingegebenen Typ durchsucht werden.
 
Also ich hab das nicht ausprobiert, nur mal so ne idee,

double aa;
char *user_input;
/* hier lässt du denn user die eingabe machen, kannst auch ein array nehmen .. */
if(strstr(user_input, ".") == NULL){ //enthält die eingabe einen punkt? bei null ist dem nicht so
//hier denn input in ein char array packen
}else{
aa = atof(user_input);
//dann hast du die double aa die du in das entsprechende Array packen kannst

.......
 
Hey,

vielen dank für eure Hilfe hab es jetzt mit der funktion atof(char*) gelöst. Hab zwar schonmal was von atoi() gehört gehabt aber atof() war mir unbekannt.
Aufjedenfall danke.

mfg virus
 
Zurück
Oben