Fehlerbehebung 2 der unit_Test und Makefile Anpassung

This commit is contained in:
Laura Wehner 2025-10-22 21:52:03 +02:00
parent f77c450c0f
commit fefffcfdf5
6 changed files with 32 additions and 26 deletions

View File

@ -22,7 +22,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
{ {
for (unsigned int j = 0; j < searchFieldLen; ++j) for (unsigned int j = 0; j < searchFieldLen; ++j)
{ {
salad[i][j] = ' '; salad[i][j] = EMPTY_CHAR;
} }
} }
@ -90,7 +90,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
{ {
if (salad[i][j] == EMPTY_CHAR) if (salad[i][j] == EMPTY_CHAR)
{ {
salad[i][j] = 'A' + rand() % 26; salad[i][j] = 'A' + (rand() % 26);
} }
} }
} }

View File

@ -1,42 +1,38 @@
#include "input.h" #include <stdio.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#define MAX_WORD_LEN 100
void capitalletters(char *str) { void capitalletters(char *str) {
while (*str) { while (*str) {
*str = toupper((unsigned char)*str); *str = toupper((unsigned char)*str);
str++; str++;
} }
} }
// Liest Wörter aus Datei und speichert sie sicher im 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)
{ {
char buffer[MAX_WORD_LEN]; char buffer[1024]; // größerer Puffer für ganze Zeile
unsigned int count_word = 0; unsigned int count_word = 0;
while (count_word < maxWordCount && fgets(buffer, sizeof(buffer), file) != NULL) while (count_word < maxWordCount && fgets(buffer, sizeof(buffer), file) != NULL)
{ {
// Zeilenumbruch entfernen
buffer[strcspn(buffer, "\r\n")] = '\0';
// Zeilenumbruch manuell entfernen // Zerlege Zeile in Wörter anhand von Leerzeichen, Komma und Semikolon
for (int i = 0; i < MAX_WORD_LEN; i++) char *token = strtok(buffer, " ,;");
while (token != NULL && count_word < maxWordCount)
{ {
if (buffer[i] == '\n' || buffer[i] == '\r') capitalletters(token); // Großschreiben
{ strncpy(words[count_word], token, MAX_WORD_LEN - 1);
buffer[i] = '\0'; words[count_word][MAX_WORD_LEN - 1] = '\0'; // Nullterminierung
break;
}
}
capitalletters(buffer);
// Sicheres Kopieren in das Zielarray
strncpy(words[count_word], buffer, MAX_WORD_LEN - 1);
words[count_word][MAX_WORD_LEN - 1] = '\0'; // Nullterminierung sicherstellen
count_word++; count_word++;
token = strtok(NULL, " ,;");
}
} }
return count_word; return count_word;

View File

@ -33,6 +33,8 @@ game.o: game.c
graphicalGame.o: graphicalGame.c graphicalGame.o: graphicalGame.c
$(CC) -I$(raylib_folder) -c $(CFLAGS) graphicalGame.c $(CC) -I$(raylib_folder) -c $(CFLAGS) graphicalGame.c
# -------------------------- # --------------------------
# Unit Tests # Unit Tests
# -------------------------- # --------------------------
@ -41,8 +43,16 @@ TEST_BIN = runTests
test: input.o game.o unit_tests.c test: input.o game.o unit_tests.c
$(CC) $(CFLAGS) -I$(unityfolder) -o $(TEST_BIN) input.o game.o unit_tests.c $(BINARIES)/libunity.a $(CC) $(CFLAGS) -I$(unityfolder) -o $(TEST_BIN) input.o game.o unit_tests.c $(BINARIES)/libunity.a
$(BINARIES)/libwordsalad_complete.a: input.o game.o
ar rcs $(BINARIES)/libwordsalad_complete.a input.o game.o
wordsalad_myversion: main.o $(BINARIES)/libwordsalad_complete.a $(BINARIES)/libraylib.a
$(CC) $(CFLAGS) -o wordsalad_myversion main.o $(BINARIES)/libwordsalad_complete.a $(BINARIES)/libraylib.a $(LDFLAGS)
# -------------------------- # --------------------------
# Clean # Clean
# -------------------------- # --------------------------
clean: clean:
del /f *.o *.exe del /f *.o *.exe

Binary file not shown.

Binary file not shown.