#include "input.h" #include #include // TODO: // eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei (words.txt) einliest und als C-String zurückgibt. // Liest eine Zeile und uns schreibt oder speichert Sie im buffer. Unserre Rückgabe wird sein: A) entweder buffer (als C-String) oder NULL, wenn kein Wort mehr gelesen werden kann. static char *readWord(FILE *file, char *buffer, unsigned int bufferSize) { char line[MAX_LINE_LEN]; unsigned int length = 0; unsigned int i = 0; if (file == NULL || buffer == NULL || bufferSize == 0) { return NULL; } // Zeile für Zeile lesen, bis ein nicht-leeres Wort gefunden ist while (fgets(line, MAX_LINE_LEN, file) != NULL) { // Zeilenumbruch, Wagenrücklauf und Leerzeichen am Ende entfernen length = strlen(line); while (length > 0 && (line[length - 1] == '\n' || line[length - 1] == '\r' || line[length - 1] == ' ')) { length--; line[length] = '\0'; } // Leere Zeilen überspringen if (length > 0) { // Sicher in den Zielpuffer kopieren und terminieren strncpy(buffer, line, bufferSize - 1); buffer[bufferSize - 1] = '\0'; // In Großbuchstaben umwandeln (das Spielfeld wird mit 'A'-'Z' gefüllt) for (i = 0; buffer[i] != '\0'; i++) { buffer[i] = toupper((unsigned char)buffer[i]); } return buffer; } } return NULL; // Dateiende erreicht } // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { unsigned int count = 0; // Wörter lesen, bis das Array voll ist oder die Datei zu Ende ist while (count < maxWordCount && readWord(file, words[count], MAX_WORD_LEN) != NULL) { count++; } return count; }