info2_uebungen/02_strings/eingabeTest.c
2025-10-16 12:50:57 +02:00

42 lines
1.7 KiB
C

/*
* Legen Sie in einer Datei eingabe.h bzw. eingabe.c die Funktion gibTextEin an, die eine Zeichenkette übergeben bekommt,
* die vor der Eingabe angezeigt wird, einen Puffer, in dem die eingelesene Zeichenkette gespeichert wird,
* und die Größe des Puffers, die die Anzahl an einzulesenden Zeichen darstellt (inklusive Zeilenumbruch und abschließendem
* Null-Zeichen). Die Funktion soll genau eine Zeile Text einlesen. Zudem soll die Funktion prüfen, ob noch Zeichen im
* Eingabepuffer liegen und in diesem Fall den Eingabepuffer leeren. Im Fehlerfall gibt die Funktion 0 zurück, ansonsten 1. Die
* eingelesene Zeichenkette soll den Zeilenumbruch zur Bestätigung der Eingabe nicht enthalten. Nutzen Sie zum Einlesen bitte fgets.
*/
#include <stdio.h>
#include <stdlib.h>
#include "eingabe.h"
#define MAX_EINGABE_LEN 10
int main()
{
char testChar;
char eingabeText[MAX_EINGABE_LEN];
printf("Zum Testen bitte bei einem Programmdurchlauf weniger und beim naechsten mehr als %d Zeichen eingeben und jeweils mit ENTER bestaetigen.\n", MAX_EINGABE_LEN-1);
if(gibTextEin("Eingabe: ", eingabeText, MAX_EINGABE_LEN))
{
printf("Die Eingabe lautet \"%s\". Es sollte kein Zeilenumbruch auftreten.\n", eingabeText);
printf("Wenn alles korrekt implementiert ist, sollte das Programm jetzt nur auf ein ENTER warten und die Ausgabe dann unten leer sein.\n");
printf("Rest im Eingabepuffer: ");
while((testChar = getchar()) != '\n')
{
printf("%c", testChar);
}
printf("\n");
}
else
{
printf("Beim Einlesen ist ein Fehler aufgetreten.\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}