getchar



  • 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