Char array auswerten



  • Guten Abend,
    C++
    Ich versuche seit mehrere Tage ein Problem zu lösen und zwar ich möchte, dass der User A, U oder V eingibt.
    Es sind mehrere Auswahl möglich, falls der User was anders ein gibt außer A, U oder V soll ein Fehler Meldung kommen und er soll erneut gefragt werden.
    Die Buchstaben dürfen nicht wiederholt werden.
    Ich habe ein Abschnitt von meinem Programm hinzugefügt, kann einer mir helfen??

    #include <iostream>
    #include <ctime>
    #include <windows.h>
    #include <winuser.h>
    #include <tchar.h>
    #include <string>
    #include<limits>

    using namespace std;
    int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szComdLine, int iCmdShow)

    {
    int alter,aktjahr,z;

    int prufen;
    prufen= -1;

    while (prufen!= 0)
    {

    char berechnung[100];
    cout<<endl<<"Was soll Ermitellt werden!!!"<< " Fuer Umfang (U), Flaeche (A), Volumen(V) es kann mehrere Auswahl getroffen werden"<<endl;

    cin>>berechnung;
    int anzahl = strlen(berechnung); // Eingabe in Int umwandeln um Buchtabe anzahl zu definiern

    if(anzahl>3||anzahl==0) // maximale Limit definieren
    {
    MessageBox( NULL,"Sie haben zu viele Buchstabe eingegeben","Fehler",MB_OK|MB_ICONHAND);
    }

    else //?????????????????????????????????????????????????????????
    {
    for (z=0; berechnung[z]!= '\0';z++) // Eingabe überprüfen
    {
    if ((berechnung,"a")||(berechnung,"u")||(berechnung,"v")||(berechnung,"A")||(berechnung,"U")||(berechnung,"V"))

    {
    prufen=0;

    }
    else
    {
    MessageBox( NULL,"Fehlerhafte Eingabe!","Fehler",MB_OK|MB_ICONHAND);

    }
    }
    }
    }
    return 0;
    }



  • - Du hast keine Frage gestellt.
    - Du hast keine Code-Tags benutzt.

    Du versuchtst seit Tagen dieses Problem zu lösen? Das wäre echt bitter...

    if ((berechnung,"a")||(berechnung,"u")||(berechnung,"v")||(berechnung,"A")||(berechnung,"U")||(berechnung,"V"))
    

    Was soll das denn sein und wo hast du das gelernt?!



  • Hello Dummy123

    Ich habe das nirgendwo gelernt, sondern ich bin Anfänger und bringe es mir selber bei.
    Was ich versucheist, die Eingabe in einer For schleife zu schreiben. Es soll so oft wiederholt werden, bis alle Kriterien durch sind. Wenn alle kriterien stimmen soll while schleife beendet werden. Meine Frage ist wie soll ich die If Bedingung schreiben das es funktioniert? ?

    Vielen Dank



  • Ei ei ei... Dir sind die Grundlagen der Sprache überhaupt nicht klar, wie kann das sein, wenn man es "sich selbst beibringt"? Du bringst es dir eben nicht selbst bei, sondern rätst wild rum...
    Fang mal so an:

    if ((berechnung[0] == 'a')...)||)
    

    Zu sowas gibt es im Netz 1 Millarde Beispiele, wie kann man das dann noch falsch machen, werd ich NIE verstehen...



  • Schreibe dafür spezielle Funktionen.

    rashkrash_90 schrieb:

    if(anzahl>3||anzahl==0) // maximale Limit definieren
    

    Das kann auch dreimal A sein, was auch verkehrt ist.
    Lass dem Nutzer den Spaß, falschen Eingaben zu machen und nimm nur die richtigen Werte.

    Aber da du ja schon MessageBox benutzt, wäre ein Dialog mit drei Checkboxen narrensicher.

    rashkrash_90 schrieb:

    Ich habe das nirgendwo gelernt, sondern ich bin Anfänger und bringe es mir selber bei.

    Was bringst du dir bei?

    C++ mit C-Strings (char-Arrays)? Dafür gibt es den Typ std::string
    Konsolen oder GUI-PRogrammierung? Entweder MessageBox oder cout.


Log in to reply