Browse Source

Änderung in input.c + test_datei, Anton Lohrey

remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
998fe6d55b
  1. 28
      src/Input.c
  2. 34
      test/test_Input.c

28
src/Input.c

@ -3,16 +3,30 @@
#include <string.h>
char* getUserInput() {
//Beim benutzen von dieser Funktion sollte man danach free(userinput) benutzen, damit der speicherplatz wieder freigegeben wird
char *input = NULL;
size_t size = 0;
//getline weißt speicher zu deshalb größe 0
printf("Ihre Eingabe: ");
getline(&input, &size, stdin);
const int BUFFER_SIZE = 64;
char *input = (char*)malloc(BUFFER_SIZE * sizeof(char));
if (input == NULL) {
// Fehler bei speicherzuweisung
return NULL;
}
printf("Enter your input: ");
if (fgets(input, BUFFER_SIZE, stdin) == NULL) {
// Fehler bei fgets
free(input);
return NULL;
}
size_t len = strlen(input); //ignorieren von neuer Zeile
size_t len = strlen(input);
if (len > 0 && input[len - 1] == '\n') {
input[len - 1] = '\0';
}
// Länge an den eigentlichen input anpassen um speicher zu sparen
char *resizedInput = realloc(input, strlen(input) + 1);
if (resizedInput != NULL) {
input = resizedInput;
}
return input;
}

34
test/test_Input.c

@ -0,0 +1,34 @@
#ifdef TEST
#include <stdlib.h>
#include "unity.h"
#include "Input.h"
void setUp(void) {
}
void tearDown(void) {
}
void test_getUserInput(void) {
const char *test_input = "a1";
FILE *tempInputFile;
// Datei erstellen
tempInputFile = fopen("temp_input.txt", "w");
fprintf(tempInputFile, "%s\n", test_input);
fclose(tempInputFile);
// aus der Datei lesen um User input zu simulieren
tempInputFile = freopen("temp_input.txt", "r", stdin);
char *actual_input = getUserInput();
TEST_ASSERT_EQUAL_STRING(test_input, actual_input);
//Clean-up
free(actual_input); // siehe kommentar in input.c
fclose(tempInputFile);
remove("temp_input.txt"); // Datei automatisch löschen
}
#endif // TEST
Loading…
Cancel
Save