Skip to content
Snippets Groups Projects
tools.c 3.64 KiB
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "tools.h"

/**********************************************************/
/**********************************************************/
void clearScreen()
{
   system("clear"); // Linux
  // system("CLS");   // Windows
}

/**********************************************************/
/**********************************************************/
void clearBuffer()
{
   char Dummy;

   do
   {
      scanf("%c", &Dummy);
   } while (Dummy != '\n');
}

/**********************************************************/
/**********************************************************/
void waitForEnter()
{
   printf("\nBitte Eingabetaste druecken ...");
   clearBuffer();
}

/**********************************************************/
/**********************************************************/
int askYesOrNo(char *Question)
{
   char Input;

   do
   {
      printf("%s", Question);
      scanf("%c", &Input);
      if (Input != '\n')
         clearBuffer();
   } while ((Input != 'j') && (Input != 'J') && (Input != 'n') && (Input != 'N'));
   return ((Input == 'j') || (Input == 'J'));
}
/**********************************************************/
/**********************************************************/
void printLogo ()
{
   FILE *titel = fopen("Logo.txt","r");
   char output[150];
   if(titel)
   {
   while(!feof(titel)){
      fgets(output,150,titel);
      printf("%s",output);
         }
      puts("\n");
      fclose(titel);
      }
   else {
      puts("Logo not found\n");
   }
}

/**********************************************************/
/**********************************************************/
void delay(unsigned int number_of_seconds)
{
    // Converting time into milli_seconds
    int milli_seconds = 1000 * number_of_seconds;

    // Storing start time
    clock_t start_time = clock();

    // looping till required time is not achieved
    while (clock() < start_time + milli_seconds)
        ;
}
/**********************************************************/
/**********************************************************/
void printLine(char zeichen, unsigned int limit)
{
   for(unsigned int i = 0; i < limit; ++i)
   {
      printf("%c",zeichen);
   }
   puts("\n");
}
/*******************************************************************************************************************************************/
/* function receives a prompt as a string, the maximum input *******************************************************************************/ 
/* length of the text to be entered, a pointer to a string,*********************************************************************************/ 
/*as well as a boolean value whether an empty string is also allowed as input. *************************************************************/
/*******************************************************************************************************************************************/
int getText(char* prompt, unsigned int maxLength, char** pointerToString, int stringOption){

    if(!pointerToString) return 0;
    char* input;
    char format[20];
    unsigned int stringLength;
    int loopExit = 0;
    input = malloc(maxLength + 1);
    if(input)
    {
      sprintf(format,"%%%i[^/n]", maxLength);
      do
      {
         puts(prompt);
         scanf(format,input);
         clearBuffer();
         stringLength = strlen(input) + 1 ;
         if (stringLength > 1)
         {
            strncpy(input, *pointerToString, stringLength);
            loopExit = 1;
         }
         else if (stringOption) loopExit = 1;
      } while (loopExit != 1);
      free(input);
      return -1;
    }
    else return 0;
}