[Anfängerfrage] Keine Zahl sondern Buchstaben zur Funktionsauswahl...



  • Also ich bin totaler anfänger in C++ nund habe am heutigen nachmittag mein erstes vollständig allein gestaltetes C++ Programm geschrieben 🙂 nun meine Frage, wie mache ich es, dass ich nicht 1 oder 2 zum auswählen der Funktionen nehmen muss sondern halt Celsius oder Fahrenheit oder einfach irgend eine andere Textfolge aus Buchstaben... hoffe ihr könnt mir helfen..
    mfg malla

    #include <iostream>
    #include <conio.h> 
    using namespace std;
     int main()
      {
    loop:  	
        cout << "Bitte Waehlen sie den zu konvertierenden Wert!\n"; 
        cout << "Fuer Fahrenheit schreiben sie bitte 1.\n";
        cout << "Fuer Celsius schreiben sie bitte 2.\n";
    wahl:
          int Wahl;
    
    	  cin >> Wahl ;
    
    if (Wahl == 1) // Wenn 1 eingegeben wird Funktion zum Konvertieren von Celsius in Fahrenheit aufgerufen
    {	
            cout << "Bitte geben sie die Temperatur in Fahrenheit an:";
           float EingabeFahrenheit;
           cin >> EingabeFahrenheit; 
           cout << "\n\n";
           float AusgabeCelsius;
           AusgabeCelsius = ((EingabeFahrenheit - 32) * 5) / 9;
           cout << "Die Temperatur in Celsius betraegt:" << AusgabeCelsius << "\n";
    	   cout << "Nocheinmal eine Temperatur Berechnen ? 1 fuer Ja und 2 fuer Nein:\n\n";
    		int NochmalFrage;
    		cin >> NochmalFrage;
    		if (NochmalFrage == 1)
    			goto loop;
    		if (NochmalFrage == 2)
    			cout << "Danke, dass sie meinen Rechner genutzt haben :) !\n";
                goto end;
    }
    
    else  
    
      if (Wahl == 2)
      {cout << "Bitte geben sie die Temperatur in Celsius an: "; 
         float EingabeCelsius;
         cin >> EingabeCelsius;
    	 cout << "\n\n";
    	 float AusgabeFahrenheit;
    	 float Faktor = 5 / 9;
    	 AusgabeFahrenheit = 32 + 9 * EingabeCelsius / 5;
    	 cout << "Die Temperatur in Fahrenheit:" ;
         cout <<	AusgabeFahrenheit <<"\n\n";
    	 cout << "Nocheinmal eine Temperatur Berechnen ? 1 fuer Ja und 2 fuer Nein:";
    		int NochmalFrage;
    		cin >> NochmalFrage;
    		cout << "\n\n";
    		if (NochmalFrage == 1)
    			goto loop;
    
    		  if (NochmalFrage == 2)
      	cout << "Danke, dass sie meinen Rechner genutzt haben :) !\n";
    	goto end;
      }		 
      else
    	  cout << " Bitte geben sie entweder 1 oder 2 ein: \n";
      goto wahl;
    
    end:
       return 0;
    
       getch ();
      }
    


  • std::string temp;
    
    cin>>temp;
    
    if(temp == "irgendwas")
    {
      // blaaa
    }
    


  • hmm das hatte ich auch schoneinmal versucht.. bekomme aber folgende Compilerfehler:

    error C2446: '==' : Keine Konvertierung von 'char *' in 'int'
    error C2040: '==' : 'int' unterscheidet sich von 'char [11]' in Bezug auf die Anzahl vorgenommener Dereferenzierungen



  • Du musst natürlich den Typ von "wahl" ändern, sofern das nicht geschehen ist.
    Also so:

    std::string wahl; // Das darf kein int mehr sein!
    


  • Und in was muss ich das ändern in char ?

    Hab noch nich all zuviel ahnung hab erst vor 5 tagen damit angefangen..... 👎



  • also, zuerst einmal musst du den header für die stringklasse einbinden

    #include <string>
    

    und dann einfach

    //statt: int Wahl;
    string Wahl;
    
    cin >> Wahl ;
    
    if (Wahl == "irgendwas") { 
    //etc.
    


  • Aber das steht doch da. Du musst den Typ aller Variablen ändern, die für die Eingabe benötigt werden (z. B. Wahl), und zwar nach std::string.



  • Ohh 💡 jetzt leutets.. DANKE 🙂 das mit dem string war mir nich ganz klar.. aber jetzt hats geklickt 🙂 🤡



  • Achja, du musst auch noch...

    #include <string>
    

    ...einbinden. Hab ich vergessen. 🙂



  • Jo nach dem string includen funzt mein erstes proggi endlich richtig 🙂 danke ihr beiden.... kann euch nur weiter empfehlen


Anmelden zum Antworten