98 lines
3.1 KiB
C
98 lines
3.1 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#define MAXLEN 50
|
|
|
|
|
|
void getstring(char *ptr)
|
|
{
|
|
fgets(ptr, MAXLEN, stdin); // Liest bis zu MAXLEN Zeichen aus der Standardeingabe
|
|
ptr[strcspn(ptr, "\n")] = '\0'; // Ersetzt das '\n' Zeichen durch '\0' (String-Ende)
|
|
fflush(stdin); // Leert den Eingabepuffer
|
|
}
|
|
|
|
// Funktion zur Eingabe der Adressdaten
|
|
// Gibt die Anzahl der gewünschten Wiederholungen zurück oder 0 bei fehlerhafter Eingabe
|
|
int eingabe(char *vorname, char *nachname, char *strasse, char *wohnort, char *hausnr, int *postleitzahl, char *telefon, char *fax)
|
|
{
|
|
printf("Vorname\t\t:");
|
|
getstring(vorname);
|
|
|
|
printf("Nachname\t:");
|
|
getstring(nachname);
|
|
|
|
printf("Strasse\t\t:");
|
|
getstring(strasse);
|
|
|
|
printf("Hausnummer\t:");
|
|
getstring(hausnr);
|
|
|
|
printf("Postleitzahl\t:");
|
|
// Überprüft die Eingabe auf einen gültigen Integer
|
|
if(scanf("%d", postleitzahl) != 1)
|
|
{
|
|
return 0; // Fehler bei der Eingabe
|
|
}
|
|
|
|
fflush(stdin); // Eingabepuffer leeren
|
|
|
|
printf("Wohnort\t\t:");
|
|
getstring(wohnort);
|
|
|
|
printf("Telefon\t\t:");
|
|
getstring(telefon);
|
|
|
|
printf("Fax\t\t:");
|
|
getstring(fax);
|
|
|
|
printf("Wie oft soll die Adresse in die Datei geschrieben werden?\t:");
|
|
int anzahl;
|
|
// Überprüft die Eingabe auf einen gültigen Integer
|
|
if(scanf("%d", &anzahl) != 1)
|
|
{
|
|
return 0; // Fehler bei der Eingabe
|
|
}
|
|
|
|
return anzahl; // Gibt die Anzahl der Wiederholungen zurück
|
|
}
|
|
|
|
int main()
|
|
{
|
|
// Öffnet die Datei "datei.txt" im Anhangmodus ("a")
|
|
FILE *ziel;
|
|
ziel = fopen("datei.txt", "a");
|
|
|
|
// Überprüft, ob die Datei erfolgreich geöffnet wurde
|
|
if (ziel == NULL)
|
|
{
|
|
printf("Fehler beim Öffnen der Datei\n");
|
|
return 1; // Fehlercode 1: Datei konnte nicht geöffnet werden
|
|
}
|
|
|
|
// Definition der Variablen für die Adressdaten
|
|
char vorname[MAXLEN], nachname[MAXLEN], strasse[MAXLEN], wohnort[MAXLEN], hausnr[MAXLEN], telefon[MAXLEN], fax[MAXLEN];
|
|
int postleitzahl, anzahl;
|
|
|
|
// Ruft die Eingabefunktion auf und prüft, ob die Eingabe erfolgreich war
|
|
if((anzahl = eingabe(vorname, nachname, strasse, wohnort, hausnr, &postleitzahl, telefon, fax)) == 0)
|
|
{
|
|
return 0; // Fehlerhafte Eingabe, Programm wird beendet
|
|
}
|
|
|
|
// Schreibt einen Trenner in die Datei
|
|
fprintf(ziel, "-----------------------------------------------------\n");
|
|
|
|
// Schleife zum mehrfachen Schreiben der Daten in die Datei
|
|
for (int i = 0; i < anzahl; i++)
|
|
{
|
|
fprintf(ziel, "%s %s\n", vorname, nachname); // Vorname und Nachname
|
|
fprintf(ziel, "%s %s\n", strasse, hausnr); // Straße und Hausnummer
|
|
fprintf(ziel, "%d %s\n\n", postleitzahl, wohnort); // Postleitzahl und Wohnort
|
|
fprintf(ziel, "Tel. %s\n", telefon); // Telefonnummer
|
|
fprintf(ziel, "Fax %s\n", fax); // Faxnummer
|
|
fprintf(ziel, "-----------------------------------------------------\n");
|
|
}
|
|
|
|
fclose(ziel); // Schließt die Datei
|
|
return 0; // Programmende
|
|
} |