Skip to content
Snippets Groups Projects
tools.c 5.29 KiB
Newer Older
Wadi.T's avatar
Wadi.T committed
#include <stdio.h>
#include <stdlib.h>
T.Wadi's avatar
T.Wadi committed
#include <time.h>
T.Wadi's avatar
T.Wadi committed
#include <string.h>
Wadi.T's avatar
Wadi.T committed
#include "tools.h"

/**********************************************************/
/**********************************************************/
void clearScreen()
{
   system("clear"); // Linux
T.Wadi's avatar
T.Wadi committed
                    // system("CLS");   // Windows
Wadi.T's avatar
Wadi.T committed
}

/**********************************************************/
/**********************************************************/
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'));
T.Wadi's avatar
T.Wadi committed
}
/**********************************************************/
/**********************************************************/
T.Wadi's avatar
T.Wadi committed
void printLogo()
T.Wadi's avatar
T.Wadi committed
   FILE *titel = fopen("Logo.txt", "r");
T.Wadi's avatar
T.Wadi committed
   char output[150];
T.Wadi's avatar
T.Wadi committed
   if (titel)
T.Wadi's avatar
T.Wadi committed
      while (!feof(titel))
      {
         fgets(output, 150, titel);
         printf("%s", output);
      }
T.Wadi's avatar
T.Wadi committed
      puts("\n");
T.Wadi's avatar
T.Wadi committed
      fclose(titel);
T.Wadi's avatar
T.Wadi committed
   }
   else
   {
T.Wadi's avatar
T.Wadi committed
      puts("Logo not found\n");
   }
}

/**********************************************************/
T.Wadi's avatar
T.Wadi committed
/**********************************************************/
void delay(unsigned int number_of_seconds)
{
T.Wadi's avatar
T.Wadi committed
   // Converting time into milli_seconds
   unsigned int milli_seconds = 1000 * number_of_seconds;
T.Wadi's avatar
T.Wadi committed

T.Wadi's avatar
T.Wadi committed
   // Storing start time
   clock_t start_time = clock();
T.Wadi's avatar
T.Wadi committed

T.Wadi's avatar
T.Wadi committed
   // looping till required time is not achieved
   while ((unsigned int)clock() < start_time + milli_seconds)
      ;
T.Wadi's avatar
T.Wadi committed
}
/**********************************************************/
/**********************************************************/
void printLine(char zeichen, unsigned int limit)
{
T.Wadi's avatar
T.Wadi committed
   for (unsigned int i = 0; i < limit; ++i)
T.Wadi's avatar
T.Wadi committed
      printf("%c", zeichen);
T.Wadi's avatar
T.Wadi committed
   }
   puts("\n");
T.Wadi's avatar
T.Wadi committed
}
T.Wadi's avatar
T.Wadi committed
/*******************************************************************************************************************************************/
T.Wadi's avatar
T.Wadi committed
/* function receives a prompt as a string, the maximum input *******************************************************************************/
/* length of the text to be entered, a pointer to a string,*********************************************************************************/
T.Wadi's avatar
T.Wadi committed
/*as well as a boolean value whether an empty string is also allowed as input. *************************************************************/
/*******************************************************************************************************************************************/
T.Wadi's avatar
T.Wadi committed
int getText(char *prompt, unsigned int maxLength, char **pointerToString, int stringOption)
{
T.Wadi's avatar
T.Wadi committed
   if (!pointerToString)
      return 0;
   *pointerToString = NULL;
   char *input;
   char format[20];
   unsigned int stringLength;
   int loopExit = 0;
   input = malloc(maxLength + 1);
   if (input)
   {
      sprintf(format, "%%%i[^\n]", maxLength);
T.Wadi's avatar
T.Wadi committed
      do
      {
         puts(prompt);
T.Wadi's avatar
T.Wadi committed
         *input = '\0';
T.Wadi's avatar
T.Wadi committed
         scanf(format, input);
T.Wadi's avatar
T.Wadi committed
         clearBuffer();
T.Wadi's avatar
T.Wadi committed
         stringLength = (unsigned int)strlen(input) + 1;
T.Wadi's avatar
T.Wadi committed
         if (stringLength > 1)
         {
T.Wadi's avatar
T.Wadi committed
            *pointerToString = malloc(stringLength);
T.Wadi's avatar
T.Wadi committed
            if (*pointerToString)
            {
               strncpy(*pointerToString, input, stringLength + 1);
               loopExit = 1;
T.Wadi's avatar
T.Wadi committed
            }
T.Wadi's avatar
T.Wadi committed
         else if (stringOption)
            loopExit = 1;
T.Wadi's avatar
T.Wadi committed
      } while (loopExit != 1);
      free(input);
T.Wadi's avatar
T.Wadi committed
      return 1;
T.Wadi's avatar
T.Wadi committed
   }
   else
      return 0;
T.Wadi's avatar
T.Wadi committed
}
/*******************************************************************************************************************************************/
T.Wadi's avatar
T.Wadi committed
/* function receives a prompt as a string,, a pointer to an integer, two unsigned integers to define the ***********************************/
/* max and min, a pointer to an integer,****************************************************************************************************/
T.Wadi's avatar
T.Wadi committed
/* and delevers a boolen value as return ***************************************************************************************************/
/*******************************************************************************************************************************************/
T.Wadi's avatar
T.Wadi committed
void getNumber(char *prompt, unsigned int *pointerToInteger, unsigned int min, unsigned int max)
{

   unsigned int input;
T.Wadi's avatar
T.Wadi committed
   do
   {
      puts(prompt);
T.Wadi's avatar
T.Wadi committed
      scanf("%ui", &input);
T.Wadi's avatar
T.Wadi committed
      clearBuffer();
   } while ((input < min) || (input > max));
T.Wadi's avatar
T.Wadi committed

T.Wadi's avatar
T.Wadi committed
   *pointerToInteger = input;
T.Wadi's avatar
T.Wadi committed
/**********************************************************/
/**********************************************************/
void spacesRemove(char **zeilenanfang, char zeile[101])
{
   *zeilenanfang = zeile;

   while ((**zeilenanfang == ' ') || (**zeilenanfang == 9))
   {
      
      (*zeilenanfang)++;
      
   }
  
}

/**********************************************************/
/**********************************************************/