OK, quindi sto facendo un esercizio in un libro, convertendo diversi tipi di denaro in dollari. Per qualche motivo quando digito 'e' come input per una variabile char e lo confronta con 'e' in un'istruzione if il confronto non funziona, tuttavia se lo sostituisco con un'altra lettera funzionerà correttamente. Qual è l'accordo? Heres il codice:Prendendo char 'e' come input e confrontando
int main()
{
const double yen_per_dollar = .013;
const double pound_per_dollar = 1.55;
const double euro_per_dollar = 1.29;
double amount = 1;
char unit = ' ';
std::cout << "Please enter a amount followed by a unit (p, y, or e): ";
std::cin >> amount >> unit;
if (unit == 'y')
std::cout << amount << " yen is $" << amount * yen_per_dollar << " dollars.\n";
if (unit == 'p')
if (amount == 1)
std::cout << amount << " pound is $" << amount * pound_per_dollar << " dollars.\n";
else
std::cout << amount << " pounds is $" << amount * pound_per_dollar << " dollars.\n";
if (unit == 'e')
if (amount == 1)
std::cout << amount << " euro is $" << amount * euro_per_dollar << " dollars.\n";
else
std::cout << amount << " euros is $" << amount * euro_per_dollar << " dollars.\n";
else
std::cout << "Sorry, that input isn't in the correct format." << std::endl;
std::cin >> amount; // Keeps window open
}
¤ Considerare che ad es. '3.14e20' è una specifica valida di un valore' double'. Cheers & hth., –
Ahhh ho pensato che potesse avere qualcosa a che fare con questo, solo ricordando la notazione della scuola elementare, non sapevo che i doppi potevano essere espressi in quel modo. Grazie. – Fuddlebutts
Si prega di non mettere in pausa artificialmente i programmi alla fine con tecniche dipendenti dalla piattaforma come 'system (" pause ");'. Se il problema è che "la finestra scompare", quindi eseguire il programma in modo diverso, in modo che la durata della finestra non è legata alla durata del programma. Il tuo programma ** non crea la finestra di comando ** e, in quanto tale, non è logicamente responsabile di tenerlo in giro. –