N
Musste sowas ähnliches auch schonmal machen. Sollte so ne art Karteikartenprogramm werden, allerdings ohne großen Schnickschack, hatte mehr Übungscharakter.
Du hast am Anfang ein "Menü" wo du entscheiden kannst was du machen willst. Und dann kannst du Neue Benutzer hinzufügen und dir alle ausgeben lassen.
Ich hoffe mal das das nicht allzu schlecht programmiert ist.
Aber sollte auf jeden Fall ein Ansatz sein, mit dem du weiterarbeiten kannst.
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000
struct {
char profilname[MAX];
char profildaten[MAX];
} profil;
void speichern(void) {
FILE *input;
input = fopen("profil.txt", "a+");
fputs(profil.profilname, input);
fputs(profil.profildaten, input);
fclose(input);
}
void ausgabe() {
int i = 0;
FILE *output;
char zeile[MAX];
output = fopen("profil.txt", "r");
if (output == NULL)
printf(
"----Fehler----\nHaben Sie denn ueberhaupt schon was erstellt?");
else {
while (fgets(zeile, MAX, output)) {
i++;
if ((i % 2) != 0) /*Gerade Zeile entspricht allen ProfilDaten*/
{
printf("\n--------------------------------------\n");
printf("\nProfilName:\n");
printf("%s", zeile);
} else {
printf("\nProfilDaten:\n");
printf("%s", zeile);
printf("\n");
printf("Mit Enter zum naechsten Profil\n");
getchar();
}
}
}
fclose(output);
}
void eingabe(void) {
printf("ProfilName.............:");
fgets(profil.profilname, sizeof(profil.profilname), stdin);
printf("\nProfilDaten............:");
fgets(profil.profildaten, sizeof(profil.profildaten), stdin);
speichern();
}
int main(void) {
int wahl;
while (1) {
printf("\nWas wollen Sie machen:\n\n");
printf("-1- Neuen Benutzer erstellen\n");
printf("-2- Alle Benutzer ausgeben\n");
printf("-3- Programm beenden\n\n");
printf("Ihre Auswahl : ");
do {
scanf("%d", &wahl);
} while (getchar() != '\n');
switch (wahl) {
case 1:
eingabe();
break;
case 2:
ausgabe();
break;
case 3:
printf("...Programm wird beendet\n");
return EXIT_SUCCESS;
default:
printf("Falsche Eingabe\n");
}
}
return 0;
}