Jag har en vektor av typen double. arrCosts[7]; * först och främst Jo men på det sättet kraschar mitt program om jag matar in en bokstav tex. Tja, jag vet inte om jag är ute och cyklar me detta svar men här är d ändå :) Eftersom du ju uppenbarligen använder C++ och inte C, så bör du istället läsa in till en string och använda en stringstream för att föra över strängen till din double. (och använda vector istället för ett vanligt fält, men det spelar ju ingen roll för din fråga)Typomvandling
Jag kan inte mata in ett ickenumeriskt värde i min double för då kraschar programmet.
Alltså måste jag använda en annan datatyp för min inmatning.
Jag har då en char och skriver cin>> ch; tex.
Efter att ha kollat min ch efter ickenumeriska värden vill jag typomvandla den till double. arrCosts[7] = atof(ch); vill inte fungera. Varför?Sv: Typomvandling
det går inte att lägga till en variabel av typen char i en vektor av typen double
* den andra
Om du har för syftet att typomvandla tecken till dess numeriska kod och sedan lägga den i din vektor , så funktion atof är olämpligt . atof omvandlar bara strängtecken som innehåller numeriska tecken .
* det tredje
Varför ska du använda dig av atof för att typ omvandla när du har redan använt en säkertypomvandling i form av Cin>> .. ( strömmar ) .
i ditt fall kanske , vill du att typomvandling ska ske från char till double .
engligt det lilla kod du angav , så vill du typomvandla det du skrev på kommandotolken till en variabel av typen double , och sedan lägga det i en vektor av typen double . Där gick allt åt pipan .
Du måste deklarera en variabel av typen double ( och inte char ) för att kompilator ska veta åt vilket håll typomvandling ska ske på detta sätt .
double minvariabel ;
cin >> minvariabel ;
minvektor[7] = minvariabel ; Sv: Typomvandling
Jag vill alltså kunna ta hand om inmatningen och utföra en felkontroll för att se om inmatningen är icke numeriskt eller numerisk.Sv: Typomvandling
1, läs in d som en string me get(cin, blabla)
2, sätt upp en for-snurra som mha isdigit() kollar om d är siffror.
3, om du vill räkna me d inmatade kan du typomvandla lr casta.
d var d.Sv: Typomvandling