Lauflicht



  • Also einfach das ihr die zahl über den Bildschrim läuft und soweit klappt das auch nur das es eben nicht in einer Zeile sondern leider in 2 zeilen abläuft.



  • Also ich seh da irgendwie überhaupt nichts laufen. Der Wert von i wird ständig an der gleichen Stelle ausgegeben. Was ist eigentlich _settextposition()?

    Du willst also, dass eine Zahl über den Bildschirm läuft. Nun gut, probier es mal so.

    ..
    int zeile = 5;
    int zahl = 3;
    int i;
    
    for(i=0;i<80;++i)
    {
       if(i)
       {
          gotoxy(i, zeile); //Achtung x und y fangen bei 1 an!
          printf(" "); //vorherige Zahl löschen
       }
       gotoxy(i+1, zeile);
       printf("%d", zahl);
       sleep(100); //Pause damit man das Spektakel überhaupt sehen kann
    }
    ..
    

    gotoxy() ist übrigens in der conio.h, die du ja eh schon includiert hast.
    Anstatt sleep() kannst du auch Sleep() verwenden. Ja, da gibts einen Unterschied! Für Sleep() brauchst du die windows.h. Schau einfach mal in die Konsolen-FAQ. Da findest du mehr über sleep() und Sleep().



  • Hallo danke für den Code habe nur folgedes problem das ich gotoxy und sleep nicht verwenden kann daher hab ich ja den befehl _settextposition verwendet aber wie gesagt bei mir funktioniert das prog auch nur eben nicht in einer zeile sondern immer nur in 2 Zeilen wobei die 2.zeile nicht ganz beschrieben wird.

    Aber trotzdem danke für deinen Tip



  • Dann ersetz doch einfach mal gotoxy() mit _settextposition() ohne die Übergabeparameter zu ändern. Und anstatt sleep() verwende Sleep(). Dann musst du aber auch die windows.h includieren.

    Wenn das immer noch nicht funktionieren sollte, dann schreib mal bitte die Syntax von _settextposition() und auch deinen Quellcode.



  • Also ich hab's jetzt ausprobiert aber ich darf leider auch den befehl: Sleep() nicht verwenden.
    Werd mal meinen Quellcode anfügen vielleicht weiss jemand was damit anzufangen.

    Thx schonmal für jeden Tip

    #include <stdio.h>
    #include <conio.h>
    #include <graph.h>
    
    void main (void)
    {
    
            do
            {
               _settextposition(10,1);
               printf(" %x ",00<<1);
               _settextposition(8,0);
            }while (!kbhit());
    }
    


  • Eine Frage: Hast du überhaupt irgendwas verstanden, was ich dir versucht habe zu erklären??

    Nach deinem Quellcode schließe ich nämlich daraus, dass du absolut NULL kapiert hast.

    Erklär mir mal bitte, was dein Quellcode bewirken sollte. Ich versteh nämlich den Sinn davon nicht ganz.
    Ich dachte du möchtest ein Zeichen den Bildschirm entlanglaufen lassen.



  • Nein es soll nicht nur ein Zeichen sein sondern mehrere Zeichen und zwar vom selben Typ in diesem fall die "0" und diese bewegt sich dann über 2 zeilen mit diesem quellcode sie soll aber nur über eine laufen das ist mein problem.



  • Machen wir das ganze mal mit einer Visualisierung, vielleicht wirds dann durchsichtiger:

    Soll es so aussehen?

    0
    
    00
    
    000
    
    0000
    
    ...
    

    Oder so?

    0
    
     0
    
      0
    
       0
    
    ...
    


  • Nein es soll so aussehen

    0  0  0  0  0  0  0  0  0  0  0  0
    
    <-  <- <- <- <- <- <- <- <- <- <-
    

    also die 0 soll sich von rechts nach links über den bildschirm bewegen.



  • Aahhh, jetzt sind wir auf einem gemeinsamen Nenner.

    int x;
    
    for(x=80;x>0;++x)
    {
       if(x<80)
       {
          printf(" "); //"löscht" die letzte 0 am Bildschirm
       }
       _settextposition(x, 1); //Setze Cursor auf Spalte x in Zeile 1
       printf("0"); //schreibt eine 0 an die neue Position
       Sleep(200); //windows.h includieren!
    }
    

    So sollte es funktionieren. Vorrausgesetzt _settextposition() funktioniert so wie ich vermute. Die Syntax der Funktion wär nicht schlecht. Ich nehme momentan einfach mal an, dass der erste Parameter die Spalte und der zweite die Zeile ist.



  • bei _settextposition ist es genau anders herum also zuerst die zeilen und dann die spalten.

    Hab aber immer noch das problem das ich den befehl Sleep nicht nutzen darf gibt's dafür ne andere Lösung?



  • Warum darfst du Sleep() nicht nutzen?? Hast du auch die windows.h includiert? Oder hast du etwa einen reinen DOS-Compiler?



  • Ich darf Sleep nicht benutzen weil wir diesen Befehl noch nicht hatten es muss aber auch so gehen bei mir klappt das auch mit dem letzten quellcode aber leider nicht in einer zeile sondern nur in knapp 2 Zeilen

    Aber trotzdem danke für deine ganze mühe



  • Weil ihr den Befehl noch nicht hattet?? Was ist denn das für eine Begründung? Und warum hattet ihr dann _settextposition() anstatt gotoxy()???

    Dass du über 2 Zeilen kommst wundert mich immer noch. Wie sieht jetzt eigentlich dein Quellcode aus?



  • dann mach doch einfach eine kleine schleife mit einer leeranweisung (zähle bis ganz hoch und tue derweil ->nix), wenn ihr sleep nicht nehmen dürft..

    -> dieser thread gehört ins konsolenforum 😉



  • du könntest auch einen prozess starten und auf ihn warten .... ist eleganter als eine leerlaufende schleife.....;-)


Anmelden zum Antworten