diff --git a/Start_Windows/input.c b/Start_Windows/input.c index d56abb9..2188618 100644 --- a/Start_Windows/input.c +++ b/Start_Windows/input.c @@ -1,13 +1,58 @@ #include "input.h" #include #include +#include //fürs öffnen von Textdateien // TODO: // 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) { -//test ob es funktioniert - if (0 == maxWordCount){printf("hello")} -} \ No newline at end of file + + FILE *quelle; //Zeiger auf quelle + + quelle = fopen("words.txt", "r"); + + if (quelle ==0) { //Dateiöffnen geklappt? + printf("Could not open file words.txt\n"); + return -1; + } + + char speicher [MAX_LINE_LEN]; //speichern einer Zeile + int anzahlwörter =0; + + if (fgets(speicher, sizeof(speicher), quelle)==0) { + return 0; //falls nichts gelesen wird + } + + char *token = strtok(speicher, "\t\n,;. "); + + while (token != NULL && anzahlwörter < maxWordCount) { + strncpy(words[anzahlwörter], token, MAX_WORD_LEN-1); //kopiert wort von ab Zeiger *token in Zielarray words + + words[anzahlwörter][MAX_WORD_LEN-1] = '\0'; //Sicherheit, dass es auch ein String ist + + for (int i =0; words [anzahlwörter][i] =='\0' ;i++) { //alle Buchstaben im array words groß machen für optik + + words [anzahlwörter][i] = toupper((unsigned char)words[anzahlwörter][i]); + } + + + anzahlwörter ++; + token = strtok(NULL, "\t\n,;. "); //NULL, damit nicht mehr Anfangsadresse, sucht das nächste Wort in der Zeile + } + + fclose(quelle); + return anzahlwörter; //wie viele Wörter wurden gespeichert im Array words + + } + + +//fgets liest eine ganze zeile ein und speicher alles im Array puffer/speicher. +//Dann implementieren wir einen Zeiger, der auf die Funktion strtok zeigt, +//die einen zeiger auf den ersten Buchstaben eines Worts im puffer zurückgibt. +//Dann kopieren wir alles in das Array words [Count]