getchar


  • Mod

    --- schrieb:

    besser? 🙂

    ja. aber noch weit entfernt von gut. Die Antwort auf Frage, ob dir jemand helfen kann, wird dir nämlich nicht weiterhelfen. Eine Antwort zu deinem Problem gibt es nicht, weil du dazu keine Frage gestellt hast. Die Frage lässt sich auch nicht unmittelbar ableiten. "Funktioniert nicht ganz" ist keine (präzise) Problembeschreibung.
    Ich würde aber empfehlen, die Bedingung im if-Statement genau unter die Lupe zu nehmen...



  • 👍
    Vielleicht ändere ich meine Meinung zum Sprachverfall doch noch. 😉



  • SeppJ schrieb:

    Mit diesem Ansatz wird nach jeder Zeile ein Tastendruck erwartet, nicht erst alle 20 Zeilen.

    wie mach ich das, das es nach 20 Zeilen ausgibt und nicht nach jeder zeile?



  • --- schrieb:

    wie mach ich das, das es nach 20 Zeilen ausgibt und nicht nach jeder zeile?

    Die Beiträge hier lesen. Und wahlweise die deutsche oder englische Sprache lernen. getchar() wird nicht ausgegeben. Oh man..



  • in den beiträgen steht nur, dass ich einen Vergleich und keine Zuweisung machen soll, dass habe ich aber schon vorher probiert und es klappt nicht.



  • Dann poste noch mal deinen neuen (am besten etwas umfangreicheren) Code.
    Grundsätzlich:

    for (unsigned i = 0; i != 100; ++i)
    {
      if (i % 20 == 0)
      {
        std::cin.get();
      }
    }
    
    // Oder:
    
    unsigned i = 0;
    while (..)
    {
      if (++i == 20)
      {
        std::cin.get();
        i = 0;
      }
    }
    


  • ok, das ist der ganze code:

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    int main()
    {
        double a,e,s,zaehler;
    
        cout<<"Geben sie den Anfangswert ein: ";
        cin>>a;
        cout<<"\nGeben sie den Endwert ein: ";
        cin>>e;
        cout<<"\nGeben sie die Schrittweite an: ";
        cin>>s;
    
        printf("\t %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c \n",218, 196, 196, 196, 196,196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 194, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 194, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 191);
        printf("\t %c               %c                %c               %c\n", 179,179,179,179);
        printf("\t %c    %s     %c       %s      %c       %s     %c \n", 179, "x-Wert",179, "x^2", 179, "1/x", 179);
        printf("\t %c               %c                %c               %c\n", 179,179,179,179);
        printf("\t %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c  \n",195, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 197, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 197, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 180);
    
        while(a<=e)
            {
                printf("\t %c %10.1f %4.0c %12.1f %3.0c %9.6f %5.0c\n", 179, a, 179,a*a, 179, 1/a, 179);
                a = a+s;
                zaehler=zaehler+1;
                if (zaehler==20)
                    {
                        getchar();
                    }
            }
        printf("\t %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c  \n",192, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 193, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 193, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 217);
    
        return 0;
    }
    


  • Siehe oben. Du musst die Variable entweder wieder auf 0 setzen, oder mit dem Modulo Operator prüfen, ob sie durch 20 teilbar ist. Denn so kann "zaehler" die Bedingung == 20 ja höchstens ein Mal erfüllen.



  • ok, danke cooky, ich habs jetzt 🙂



  • upsi, hab die zweite Seite nicht gesehen :xmas1:



  • fail?



  • cooky451 schrieb:

    fail?

    Wie gesagt, hab die zweite Seite nicht gesehen.


Anmelden zum Antworten