?
Okay, habe mal ein kleines Testprogramm zusammengebastelt. Habe einen Thread für die Uhrfunktion erstellt. Allerdings bin ich mit dem Ergebnis nicht so zufrieden. Das Problem ist eben, dass der Cursor logischerweise in einer Schleife an die gewünschte Stelle springt um die aktuelle Uhrzeit auf dem Bildschirm auszugeben. So gestaltet es sich ziemlich schwer eine einfache Eingabe zu programmieren.
Hättet ihr vielleicht ein paar Tipps für mich? Hier mal der Quellcode meines Testprogamms:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
#include <pthread.h>
#include "conio/conio.h"
#define clrscr() printf("\033[2J")
#define pos( x, y ) printf("\033[%d;%dH", x, y)
void *uhrzeit( void *val );
char *no_enterKey( char * );
void *uhrzeit( void *val )
{
time_t dat_clock;
struct tm *zeitInfo;
char puffer[80];
while( 1 )
{
sleep( 1 );
pos( 3, 4 );
time( &dat_clock );
zeitInfo = localtime( &dat_clock );
strftime( puffer, 80, "\n\tUhrzeit: %X", zeitInfo );
fputs( puffer, stdout );
}
}
char *no_enterKey(char *str)
{
int len;
len = strlen(str);
if(str[len-1] == '\n')
str[len-1] = '\0';
return( str );
}
int main()
{
pthread_t thread_1;
int rc;
char puffer[80];
clrscr();
rc = pthread_create( &thread_1, NULL, uhrzeit, NULL );
if( rc != 0 )
{
printf("Thread_1 konnte nicht erzeugt werden!!!\n");
return EXIT_FAILURE;
}
pos( 8, 1 );
printf("Wie heisst du? ");
pos( 9, 1 );
fgets( puffer, 80, stdin );
no_enterKey( puffer );
pos( 12, 1 );
printf("Hallo %s.", puffer);
getch();
pthread_cancel( thread_1 );
pthread_join( thread_1, NULL );
clrscr(); pos( 1, 1 );
return EXIT_SUCCESS;
}
Gruß Peter