Voglio valutare una stringa con un interruttore ma quando leggo la stringa immessa dall'utente, mi viene il seguente errore.Valutare una stringa con uno switch in C++
#include<iostream>
using namespace std;
int main() {
string a;
cin>>a;
switch (string(a)) {
case "Option 1":
cout<<"It pressed number 1"<<endl;
break;
case "Option 2":
cout<<"It pressed number 2"<<endl;
break;
case "Option 3":
cout<<"It pressed number 3"<<endl;
break;
default:
cout<<"She put no choice"<<endl;
break;
}
return 0;
}
error: invalid cast from type 'std::string {aka std::basic_string}' to type 'int
'std :: string' non funziona bene con lo switch. – 0x499602D2
Le espressioni di commutazione devono essere valutate su un tipo integrale. – juanchopanza
Gli switch C++ funzionano solo sui tipi interi. Devi codificare nella lingua che stai utilizzando. Il desiderio di una funzione non lo renderà tale. Puoi costruire una mappa da stringhe a numeri interi e quindi passare a quei numeri interi. Oppure la mappa può essere da stringhe a puntatori di funzione, dove una chiamata sul puntatore fa quello che vuoi. – Gene