Überprüfen ob keine Eingabe gemacht wurde.



  • Guten Abend.

    Habe mal wieder ein, Problem.
    Und zwar möchte ich Überprüfen ob keine Eingabe gemacht wurde
    also nur Enter eingegeben wurde.

    Das wen ich keine Korrekte Eingabe gemacht wurde das habe hin bekommen.
    Die Ausgabe ist dann "Keine Eingabe!" wen aber die Richtige Eingabe
    kommt dann "Funktioniert".

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(void)
    {
    
     string OS;
    
     cout << "--Graphics-Cards consistency test--" << endl 
          << endl
          << endl;
    
     cout << "Select the operating system :" << endl
          << "Windows NT / 2000 :: 0" << endl
          << "Windows XP :: 1" << endl
          << "Windows Vista Service Pack 1 :: 2A" << endl
          << "Windows Vista Service Pack 2 (SystemClosed!!) :: 2B" << endl
          << endl
          << endl
          << "Your Input : ";
    
           while (cin >> OS) {
    
                 if (OS != "") {
    
                        cout << "Keine Eingabe!";
    
                        }else {
    
                              if (OS == "0"){
                                     cout << "Funktioniert!";
                                     }
    
                              }
    
                 }
    
     cin.sync();   
     cin.get();
     return 0;   
    }
    

    LG Keybladmaster



  • ...



  • Danke 😉

    Habe aber noch fix eine Frage und zwar habe ich hier ein Code
    der auf von 1-600 Zählt. Dann Überprüft eine IF-Überprüfung
    ob i = 600 ist aber leider Klappt das nicht.

    for (int i = 1 ; i<600 ; i++){
    
                          cout << "Graphics card stress test 01..."
                               << endl;
    
                          if (i == 600) {
                                cout << endl
                                     << endl;
    
                                cout << "Graphics PING = 3,42332ms"
                                     << endl
                                     << "Graphics MainPing = 3,42332ms T2"
                                     << endl
                                     << "Mainboard PING = 56/36/*2 T4"
                                     << endl
                                     << "Mainboard MainPing = 65/444/*4 T2";
    
                                }
    
                          }
    
                 }
    


  • 1-600

    Das stimmt nicht. Sie zählt von 1 ( int i = 1 ) bis 599 ( i<600 ; ). Der Code ergibt, auch wenn sie das täte, nicht viel Sinn.



  • habe ich hier ein Code
    der auf von 1-600 Zählt.

    Nein, von 1 bis 599. Das ist ja das entscheidende.



  • Erstens ist i = 600 eine Zuweisung, i wird danach den Wert 600 haben, außerdem wird dieser Wert vom Ausdruck zurückgegeben, und da 600 ungleich 0 ist, ergibt er bei der Konvertierung den Wahrheitswert true ; der Abzweigung wird also immer gefolgt, unabhängig vom vorherigen Wert von i .
    Zudem ist die Abbruchbedingung der Schleife ja gerade, dass i >= 600 zum Abbruch führt, was wohl nicht deiner Intention entspricht, denn dann würde die Bedingung der if-Verzweigung nie wahr werden.
    Anstatt dich daran zu wagen, die Korrektheit der Berechnungen von Graphikkarten zu verifizieren und zu versuchen, sie größtmöglich auszulasten, solltest du mit etwas einfachem anfangen – zumindest mit etwas, wofür nicht sehr viel Erfahrung und tiefgehende Kenntnisse über Treiberprogrammierung, den internen Aufbau der Bauteile sowie die Auswirkung jedes einzelnen Befehls benötigt werden – worüber du wohl nichtmal auch nur in Ansätzen verfügst, die der Erwähnung wert sind.
    Oh, und durch endl wird nicht nur das Zeichen für einen Zeilenumbruch eingefügt, sondern auch jedes Mal der Puffer geleert – das kostet ziemlich viel Zeit und ist ineffizient (denn vor allem ist es unnötig). Zeilenumbrüche an sich können mit '\n' eingefügt werden. (Was eigentlich an dieser Stelle auch schon im Tutorial oder Buch erwähnt worden sein sollte – ich habe zwar schon ewig keines mehr gelesen, aber mir erscheint es dort sinnvoll zu sein.)


Log in to reply