Uhrzeit im Aktuell



  • Hallo!
    Wie gebe ich eine immer aktuelle Uhrzeit aus. Ich will das Programm aber trotzdem normal ausführen können.
    Also ohne while-Schleife und system("cls").

    mfg CSS

    Tragt euch in mein Gästebuch ein!!!!!



  • dann starte doch einen Thread, damit sollte dein Problem gelöst sein.

    Falls du nicht weist wie, die msdn beschreibt ganz genau, wie man Threads aufsetzt.



  • system("CLS") sollte man sowieso nicht verwenden und meistens ist auch das Löschen des kompletten Bildschirms über bessere Methoden total unangebracht. Wenn du ständig die aktuelle Uhrzeit ausgeben willst, dann kommst du um eine Schleife nicht rum.



  • hab ich ja, aber wenn ich den Bildschirm nie lösche wird die Uhrzeit jede Sekunde in eine neue Zeile gschreiben. Außerdem wird so das ursprüngliche Programm nie aus geführt!

    mfg CSS



  • @CSS
    Dann musst du dein Programm so aufbauen, dass du in jeder Schleife die Funktion zum aktualisieren der Uhr aufrufst. Das Ausgeben der Uhr solltest du dann über Positionierung lösen. Du Positionierst beim Ausgeben also den Cursor auf die Position, wo du deine Uhr haben willst und gibst die Uhrzeit aus. Danach positionierst du wieder wo anders, wo auch immer das dann sein muss. Welche Art Programm hast du eigentlich?

    Mal ein kleines Beispiel:

    #include <conio.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <time.h>
    
    void uhrzeit_anzeigen(void);
    
    int main(void)
    {
       char ende = 0;
    
       while(!ende)
       {
          uhrzeit_anzeigen();
    
          if(kbhit())
          {
             switch(tolower(getch()))
             {
                case 'q':
                   ende = 1;
                   break;
             }
          }
       }
    
       return(0);
    }
    
    void uhrzeit_anzeigen(void)
    {
       time_t zeit;
       struct tm *st_zeit;
    
       zeit = time(0);
       st_zeit = localtime(&zeit);
    
       gotoxy(1,1);
       printf("%02i:%02i:%02i", st_zeit.tm_hour, st_zeit.tm_min, st_zeit.tm_sec);
    }
    


  • falls der compiler bei gotoxy meckert versucht mal das hier.
    Bei mir gings nämlich ohne net 🙂

    #include <windows.h> 
    #include <iostream> 
    
    void gotoxy(const int y, const int x);
    
    #include <conio.h> 
    #include <stdio.h> 
    #include <ctype.h> 
    #include <time.h> 
    
    void uhrzeit_anzeigen(void); 
    
    int main(void) 
    { 
       char ende = 0; 
    
       while(!ende) 
       { 
          uhrzeit_anzeigen(); 
    
          if(kbhit()) 
          { 
             switch(tolower(getch())) 
             { 
                case 'q': 
                   ende = 1; 
                   break; 
             } 
          } 
       } 
    
       return(0); 
    } 
    
    void uhrzeit_anzeigen(void) 
    { 
       time_t zeit; 
       struct tm *st_zeit; 
    
       zeit = time(0); 
       st_zeit = localtime(&zeit); 
    
       gotoxy(4,5); 
       printf("%02i:%02i:%02i", st_zeit->tm_hour, st_zeit->tm_min, st_zeit->tm_sec); 
    } 
    
    void gotoxy(const int y, const int x){ 
       COORD coords; 
    
       HANDLE Hnd = GetStdHandle(STD_OUTPUT_HANDLE); 
       if (Hnd == INVALID_HANDLE_VALUE) 
          return; 
    
       coords.X = (x - 1); 
       coords.Y = (y - 1); 
       SetConsoleCursorPosition(Hnd, coords); 
    }
    

    mfg
    ToMjAcK



  • @Tomjack
    Lass mich raten: DEV-CPP

    @all
    Falls der Compiler die conio.h nicht unterstützt oder nur teilweise gibts noch eine Alternative in der Konsolen-FAQ -> Improved Console


Anmelden zum Antworten