diff --git a/Start_Linux/input.c b/Start_Linux/input.c index ed77805..b68814d 100644 --- a/Start_Linux/input.c +++ b/Start_Linux/input.c @@ -1,12 +1,38 @@ #include "input.h" -#include #include - +#include + // TODO: -// eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei (words.txt) einliest und als C-String zurückgibt. - +// eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei +// (words.txt) einliest und als C-String zurückgibt. + // Read words from file and store in 'words' array -int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) +int readWords(FILE *file, char words[][MAX_WORD_LEN],unsigned int maxWordCount) { - + + if (file == NULL) + { + perror("File couldn't be opened"); + } + + char fehlerhafterString[MAX_LINE_LEN]; + char *teiler = " ;,.\n"; + char *aktuellesWort; + int wortAnzahl = 0; + + while (fgets(fehlerhafterString, sizeof(fehlerhafterString), file) != NULL && wortAnzahl < maxWordCount) + { + + aktuellesWort = strtok(fehlerhafterString, teiler); + + while (aktuellesWort != NULL && wortAnzahl < maxWordCount) + { + strncpy(words[wortAnzahl], aktuellesWort,sizeof(words[wortAnzahl]) - 1); + words[wortAnzahl][sizeof(words[wortAnzahl]) - 1] = '\0'; + wortAnzahl++; // Nächstes Wort + aktuellesWort = strtok(NULL, teiler); // Nächstes Token + } + } + + return wortAnzahl; // Anzahl der eingelesenen Wörter } \ No newline at end of file