zählen verlangsamen + zählen in einer zeile

  • hi
    Wie schaffe ich es das er beim Zählen in einer for schleife langsam zählt.
    (In einer Batchdatei habe ich es durch einen ping geschaft.)


    // erst.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //


    #include "stdafx.h"



    int _tmain(int argc, _TCHAR* argv[])
    {
    int a;


    for (a=1; a<=100 ;a++){
    printf("formatiert%d\n",a);}
    scanf("%d");
    return 0;
    }


    wenn ich das Programm ausführe steht alles gleich da. ich hätte aber gerne das
    zwichen dem zählen ca. 1Sekunde vergeht.


    Was mir noch ein Dorn im Auge ist, ist das er alles in eine neue Zeile schreibt. Wie schaffe ich es das er in der selben Zeile hochzählt?
    Ist das mit der for schleife überhaupt möglich?


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

    2 Mal editiert, zuletzt von Rumkugel ()

  • Zitat

    Original von Rumkugel
    hi
    Wie schaffe ich es das er beim Zählen in einer for schleife langsam zählt.
    (In einer Batchdatei habe ich es durch einen ping geschaft.)


    man 3 sleep


    Zitat


    wenn ich das Programm ausführe steht alles gleich da. ich hätte aber gerne das
    zwichen dem zählen ca. 1Sekunde vergeht.


    sleep(1);


    Zitat


    Was mir noch ein Dorn im Auge ist, ist das er alles in eine neue Zeile schreibt. Wie schaffe ich es das er in der selben Zeile hochzählt?
    Ist das mit der for schleife überhaupt möglich?


    Mach halt das "\n" raus.


    CU
    Oliver

  • Zitat

    Mach halt das "\n" raus.


    dann schreibt er mir zwar 100 mal formatiert... in eine Zeile. Will aber erreichen, das nur ein mal formatiert da steht und er dahinter hochzählt.
    Wie früher wen man in dos format c: eingegeben hat.
    Sorry hab mich etwas undeutlich ausgedrückt.

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

    Einmal editiert, zuletzt von Rumkugel ()

  • Zitat

    Original von Rumkugel


    dann schreibt er mir zwar 100 mal formatiert... in eine Zeile. Will aber erreichen, das nur ein mal formatiert da steht und er dahinter hochzählt.
    Wie früher wen man in dos format c: eingegeben hat.
    Sorry hab mich etwas undeutlich ausgedrückt.


    Dann verwende "\r" statt "\n".
    Falls er nix ausgibt, brauchst Du noch "fflush(stdout);" nach der printf-Zeile.


    CU
    Oliver

  • ausgeben tut er mir irgendwas.
    Leider seh ichs nich lang genug da ich das mit sleep nich ganz kapiere
    kann es sein das ich noch ein
    #define sleep(seconds)
    brauche sonst compiliert er mir nichts.
    werd mich aber morgen mal dran machen. Wenn man mal ne Nacht düber geschlafen hat klapts meistens.


    :n8


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

  • Und

    Zitat

    Original von UFO

    Code
    #include <unistd.h>


    steht in

    Zitat

    Original von UFO
    man 3 sleep


    SCNR ;)



    EDIT:
    Das _tmain Zeugs bringt mich irgendwie dazu anzunehmen, dass Du mit Visual C++ arbeitest. Dort gibt es keine unistd.h und auch kein sleep. Aber Du kannst windows.h includen und Sleep (großes S) verwenden. Sleep() erwartet aber Millisekunden statt Sekunden.


    Das bringt mich aber zu einem Standardsatz aus einem Programmierforum: Beschäftige Dich lieber zunächst mit den Grundlagen, bevor Du mit Spielereien anfängst :)

  • sleep oder Sleep haben die unangenehme Eigenschaft das sie unter Windows und Linux anderes funktionieren.
    Damit man unabhängig ist und auch 0,1Sek verwenden kann, verwenden ich immer


    #include <sys/select.h>


    struct timeval xTimeValue;
    xTimeValue.tv_sec = 0;
    xTimeValue.tv_usec = TIMEOUT_USEC;
    // timer
    select(0, NULL, NULL, NULL, &xTimeValue);


    kann man natürlich auch in eine Fkt(mysleep) packen.



    Hatte auch mal gelesen das sleep den Timeslice nicht sofort abgibt und select/poll schon, bin mir da aber nicht sicher. Aber das sollte den Anweder eigentlich (fast) egal sein. Ist nur wenn man auf lowlevel programmiert.

  • danke an alle


    Zitat

    Das _tmain Zeugs bringt mich irgendwie dazu anzunehmen, dass Du mit Visual C++ arbeitest. Dort gibt es keine unistd.h und auch kein sleep. Aber Du kannst windows.h includen und Sleep (großes S) verwenden. Sleep() erwartet aber Millisekunden statt Sekunden.


    ich verwende in der tat visual c++ da ich Vista drauf habe und mir das am
    komfortabelsten erschien, zudem ist es kostenlos.


    Zitat

    Das bringt mich aber zu einem Standardsatz aus einem Programmierforum: Beschäftige Dich lieber zunächst mit den Grundlagen, bevor Du mit Spielereien anfängst smile


    Da gebe ich dir schon recht aber pogramme abzuschreiben bringt auch nicht viel wenn man nicht weiß was wo geschieht und wo er mäckert wenn man was anders machen will. Also ist spielen die zwangsweise Folge daraus. Und das tut man lieber früher als dann wo man es braucht und jemanden im Nacken hat.
    Ich habe bis jetzt noch kein richtig gutes Tutorial gefunden, die onlinehilfe von visual Basic und ein Tutorial für Assembler das ich entdeckt habe sind ganz gut können aber auch nicht alles klären. Manchmal kann die Codesuche von google auch ganz nützlich sein, leider stehen da meißt keine erklärungen drin.


    hier noch das Programm, funktioniert.


    // erst.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //


    #include "stdafx.h"
    #include "windows.h"



    int _tmain(int argc, _TCHAR* argv[])
    {
    int a,i;
    printf("Ein Virus wurde erkannt druecken sie Enter um ihn z Loeschen\n");
    scanf("i%d",i);
    for (a=1; a<=100 ;a++){
    printf("\rDie Festplatte wird formatiert bitte Warten %d",a);
    Sleep(100);}
    scanf("%d");
    return 0;
    }



    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

  • Fahr mal zu ner UNI/FH und frag mal bei der Asta oder im Rechenzentrum nach den "Büchern" vom RRZN, gibts für ca. 3E für c, c++, java, sql etc.
    Sind teilweise 2-3 cm dicke Din A4 Wälzer und das günstigste was man zum lernen bekommen kann.

  • while(true)
    {
    i++;
    }


    belastet ganz schön.


    Gabs da nicht etwas was nicht sleep war, ein Funktionsaufruf der dem Prozessor sagte nichts zu tun und somit den Prozessor auch nicht auslastete. Irgedwas wie halt wie ich mich dunkel erinnere. Wäre das nicht ein Ersatz für hochgenaues Sleep?

  • danke


    guter tipp. Wenn ich mal wieder am Rechenzentrum vorbeikomme werd ich mal fragen.


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!