Zähler Problem



  • Für die erste Variante musst du schon noch was verändern!
    Die Zweite wäre so:

    #include <iostream> 
    #include <cstdlib> 
    using namespace std; 
    
    void main() 
    { 
        int Zaehler=10000; 
        int SekundenZahl; 
    
        for(Zaehler; Zaehler>0; Zaehler--) 
        { 
            //system("cls");  Damits ned so arg ausschaut
            cout << "Zeit bis zum Beenden: " << Zaehler/1000 << endl; 
        } 
        system("PAUSE"); 
    }
    


  • Jetzt geht es

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    void main()
    {
    	int Zaehler=10000;
    	int SekundenZahl;
    
    	for(Zaehler; Zaehler>0; Zaehler--)
    	{
    		if (Zaehler<10000)
    		{
    		 SekundenZahl=10;
    		}
    	    if (Zaehler<9000)
    		{
    	    	 SekundenZahl=9;
    		}
    	    if (Zaehler<8000)
    		{
    	       SekundenZahl=8;
    		}
    	    if (Zaehler<7000)
    		{
    	    	SekundenZahl=7;
    		}
      	    if (Zaehler<6000)
    		{
    	    	SekundenZahl=6;
    		}
    	    if (Zaehler<5000)
    		{
    	    	SekundenZahl=5;
    		}
    	    if (Zaehler<4000)
    		{
    	    	SekundenZahl=4;
    		}
    	    if (Zaehler<3000)
    		{
    	    	SekundenZahl=3;
    		}
    	    if (Zaehler<2000)
    		{
    	    	SekundenZahl=2;
    		}
    	    if (Zaehler<1000)
    		{
        		SekundenZahl=1;
    		}
        	if (Zaehler==0)
    		{
        		SekundenZahl=0;
    		}
    		cout << "Zeit bis zum Beenden: " << SekundenZahl << endl;
    	}
    	system("PAUSE");
    }
    

    aber wie könnte ich das machen, das er nicht immer den selben text schreibt sondern immer nur die Zahl verändert?



  • Ja oder einfach ein else if aus den anderen machen 😉
    Aber die kürzere Variante wäre trotzdem empfehlenswerter



  • aber wie könnte ich das machen, das er nicht immer den selben text schreibt sondern immer nur die Zahl verändert?

    Ja gut,aber ich wüsste nicht wie ich das anstellen sollte.

    Wüstest du etwas zu dem da oben?
    Oder ist das nicht möglich?



  • Also wenn du die kürzere meinst die hab ich schon gepostet

    #include <iostream> 
    #include <cstdlib> 
    using namespace std; 
    
    void main() 
    { 
        int Zaehler=10000; 
        int SekundenZahl; 
    
        for(Zaehler; Zaehler>0; Zaehler--) 
        { 
            //system("cls");  Damits ned so arg ausschaut
            cout << "Zeit bis zum Beenden: " << Zaehler/1000 << endl; 
        } 
        system("PAUSE"); 
    }
    

    wenn du möchtest dass es nicht so flackert dann setz ein \r davor dann wird die Zeile "gelöscht" und dann neu geschrieben

    Das wär das:

    {int Zaehler=10000; 
        int SekundenZahl; 
    
        for(Zaehler; Zaehler>0; Zaehler--) 
        { 
    
            cout<<"\rZeit bis zum Beenden: "<< Zaehler/1000<<"  " ; 
        } 
    
        system("PAUSE"); 
    }
    

    EDIT: jetzt passts!!



  • Funktioniert das auch mit cout?
    lol was für ne dumme frage na klar gehts auch mit cout.
    Danke.

    Er zeigt hinter der Zahl die geändert werden soll noch so andere Zahlen.
    Also 9 8 7 6 5 und so geht bloß dahinter stehen noch andere zahlen.



  • ja habs eh schon geändert gehabt 😉
    war nur für testzwecke!
    jetzt passt alles



  • Verwende mal das neueste was ich gepostet gehabt hab..Damit müssts gehen...
    die Cursorposition wird ja zurückgestellt und deshalb hast du hinten noch die Buchstaben von vorher

    Wenns sonst ned geht zeig einfach mal deine Ausgabe



  • Wie gewünscht ist das imme rnoch nicht.

    der Code heißt ja jetzt so

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    void main()
    {
    	int Zaehler=10000;
    
    	for(Zaehler; Zaehler>0; Zaehler--)
    	{
    		cout << "\rZeit bis zum Beenden: " << Zaehler/1000;
    	}
    	system("PAUSE");
    }
    

    Er sagt beim zählen das hier.
    Also das damit der keine neue zeile imme rmacht geht.

    Zeit bis zum Beenden: 90
    Zeit bis zum Beenden: 80
    Zeit bis zum Beenden: 70
    Zeit bis zum Beenden: 60
    Zeit bis zum Beenden: 50
    Zeit bis zum Beenden: 40
    Zeit bis zum Beenden: 30
    Zeit bis zum Beenden: 20
    Zeit bis zum Beenden: 10
    Zeit bis zum Beenden: 00
    Zeit bis zum Beenden: 0Drücken sie eine beliebige Taste.



  • Hab vorher eh schon geschrieben du musst dann noch ein oder zwei blank anhängen...weil die 10 ist ja zweistellig und die erste Zahl also hast du da noch die 0 stehen...

    #include "stdafx.h"
    #include <iostream> 
    #include <cstdlib> 
    using namespace std; 
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        for(int Zaehler=10000; Zaehler>0; Zaehler--) 
        { 
    
            cout<<"\rZeit bis zum Beenden: "<< Zaehler/1000<<"  " ; //<- Hier
        } 	
        system("PAUSE"); 
        return 0;
    }
    


  • Es Funktioniert.
    Danke.


Anmelden zum Antworten