Anfängerprobleme mit char

c4dazubi08

Erfahrenes Mitglied
Hallo Leute!
Wollte mich mal ein bissen in Sachen C++ üben, damit man auch das mal ein bisschen gemacht hat.
Zu meinem Problem: Ich möchte ein Programm erstellen, das erkennen kann, ob ein eingegebener Buchstabe ein Konsonant oder ein Vokal ist. So weit so gut. Habe es geschafft, dass wenn ich einen Konsonanten eingebe, das Programm mir auch sagt, dass es sich um jenen handelt, wenn ich hingegen einen Vokal eingebe, dann sagt es mir, dass es ein Vokal ist und auch ein Konsonant. Habe mir lange im Internet die if bzw. switch Beispiele angesehen, bin aber trotzdem zu keiner Lösung gekommen.
Vielleicht kann ja einer von euch helfen.

mfg

C++:
#include <iostream>
using namespace std;

int main() {
    
    char buchstabe;
    
    cout<< "Geben Sie einen Buchstaben ein!\n";
    cin>> buchstabe;
    cin.ignore();
    
    if (buchstabe == 'a','e','i','o','u') {
                 cout<< "Der buchstabe ist ein Vokal";
                 }
    if (buchstabe != 'a','e','i','o','u') {
                 cout<< "Der buchstabe ist ein Konsonant";
                 }
                 
    cin.get();
}
 

Anhänge

  • a.jpg
    a.jpg
    177,2 KB · Aufrufe: 24
Zuletzt bearbeitet:
Hi!

Deine Fehlerbeschreibung ist nicht richtig: Das Programm müsste immer beide Sätze ausspucken, egal was Du eingibst. Das liegt daran, dass Du versuchst mehrere Bedingungen mit Kommas zu formulieren, wobei der Compiler nur die letzte Bedingung für den Block auswertet - und 'u' ist immer wahr im booleschen Kontext.
Was Du meintest formuliert man so:
C++:
if(buchstabe == 'a' || buchstabe == 'b' || buchstabe == 'c' /* ... */)
Schau' Dir mal die Operatoren von C++ etwas genauer an, dannach reden wir über den anderen Kram der mir da auffällt... :)

Gruß
Enum
 
Zurück