In C eine Art Benutzerliste erstellen
-
Moin,
ich bin neu hier, bin aber denke ich mal im Richtigen Unterforum!?
Nun zu meiner Frage: Ich muss eine Art Benutzerliste schreiben, die in einer .txt Datei abgelegt wird.
Das ganze soll ungefähr so aussehen: ProfilName; ProfilDaten
Und es soll möglich sein, dass man das Profil löschen/editieren kann!Könnt ihr mir Tipps oder Ansätze geben? Stehe da zur Zeit ein bisschen auf dem Schlauch...
Es grüßt,
Hellmann
-
ja es gibt da verschiedene ansätze also der einfachste du holst dir alle einträge aus der datei und legst sie in einem array ab dann werden die bearbeitet und am ende wieder zurück gespeichert? dafür brauchst du fopen(),fclose(),fread(),fwrite() structuren,functionen und schleifen falls du die daten in sowas wie ner csv datei ablegen willst kommt noch strtok() dazu und natürlich malloc() und free() damit du dir dynamisch speicher holen kannst, hoffe ich hab jetzt keine zutat vergessen
lg lolo
-
axo ja hier http://www.cplusplus.com/reference/clibrary/ findest zu fast jeder function ein kleines beispiel einfach links oben ins suchfeld eingeben
-
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; }