Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hallo

und zwar hab ich mal ne frage zur c programmierung. Wie kann ich die Eingabe mit einer txt datei vergleichen. Es handelt sich hierbei um ein login in einer doppelt verketteten liste

void main()			//*write+Ausgabe

{

	FILE *ziel;

	struct nutzer *zeiger;


	ziel=fopen("nutzer.txt","r");

	if(NULL==ziel)

	{

		fprintf(stderr,"Datei nutzer.txt kann nicht geöffnet werden!\n");

		exit (0);

	}

	zeiger=anfang;

		while(zeiger!=NULL)

		{

			printf ("Bitte geben Sie folgendes ein, um sich erfolgreich anzumelden!\n");

			printf ("Vornamen:\n");

			scanf("%s",strcmp vorname);

			printf ("Nachname:\n");

			scanf("%s",strcmp nachname);

			printf("Kontonummer:\n");

			scanf("%s",strcmp kontonummer);

			printf("Passwort:\n");

			scanf("%s",strcmp passwort);

			if(strcmp(char vorname,char nachname,char kontonummer,char passwort)==0)

			{

				printf ("Sie haben sich erfolgreich eingeloggt\n");

			}

			fprintf(ziel,"%s|%s|%s|%s\n", zeiger->vorname,zeiger->nachname,zeiger->kontonummer,zeiger->passwort);

			zeiger=zeiger->next;

		}

		fclose(ziel);

}


so?

ja das ist die selbe aufgabe... leider :(

das is jetzt aber auch nur ein ausschnitt von dem was ich bis jetzt geschrieben hab .. warum ist das unsinn?

Weil du dich durch eine verkette Liste hangelst, in der nichts drin steht.

... was heißt denn ich hangel mich durch?

Und weil du nicht aus der Datei liest, sondern in die Datei schreibst.

ziel=fopen("nutzer.txt","r");

das heißt doch das ich sie öffne um aus ihr zu lesen

... was heißt denn ich hangel mich durch?
Du läufst über den next-Zeiger von Eintrag zu Eintrag. Das wäre ja auch nicht falsch, wenn denn in der Liste irgendwas drin wäre.

ziel=fopen("nutzer.txt","r");

das heißt doch das ich sie öffne um aus ihr zu lesen

Mag ja sein, aber du tust es leider nicht. Statt dessen versuchst du, mit fprintf in die Datei zu schreiben.
Du läufst über den next-Zeiger von Eintrag zu Eintrag. Das wäre ja auch nicht falsch, wenn denn in der Liste irgendwas drin wäre.

also ich weiß nich irgendwie versteh ich da was falsch .. ich hab die liste erstellt mit vorname,nachname,kto,passwort .. und dann zeige ich immer mit dem next zeiger drauf

Mag ja sein, aber du tust es leider nicht. Statt dessen versuchst du, mit fprintf in die Datei zu schreiben.

fprintf is doch nur zur ausgabe da oder?

Hallo,

ich glaube, wir sollten das Ding mal von einer anderen Seite betrachten:

1. Was passiert bei einem Login?

Gespeicherter Name und gespeichertes Passwort werden mit dem eingegebenen Namen und dem eingegebenen Passwort verglichen. Sind beide Vergleiche i.O., wird der Zugang freigegeben.

2. Was passiert bei mehreren Leuten?

a). Suche die Person, für die eingegebener Name gleich gespeicherter Name ist.

B). Vergleiche Passwort der gespeicherten Person mit eingegebenem Passwort.

3. Dabei gibt es zwei Möglichkeiten

aa) die Anzahl der Personen ist bekannt. Die Personen werden als Sammlung/Feld/array gespeichert

bb) die Anzahl der Personen ist unbekannt. Die Personen sind als Liste gespeichert.

Das bedeutet für die Funktion des Programmes:

1. Lese die bekannten Personen von der Datei und speichere sie in einer Liste

2. Lese Zugangsdaten von Tastatur

3. Suche Person in gespeicherter Liste ( das ist der Zweck der Liste)

4. Vergleiche Passwort

5. Zeige Daten an.

as war's schon.

also ich weiß nich irgendwie versteh ich da was falsch .. ich hab die liste erstellt mit vorname,nachname,kto,passwort .. und dann zeige ich immer mit dem next zeiger drauf
Ich sehe in deinem Code keine Liste. Deine struct nutzer stellt nur einen einzigen Eintrag in deiner Liste dar. Erst wenn du tatsächlich mehrere davon anlegst (malloc) und aneinander hängst, kannst du von einer Liste sprechen. Davon ist in deinem Code aber nichts zu sehen.

fprintf is doch nur zur ausgabe da oder?
fprintf schreibt in eine Datei, wobei der Dateibegriff hier sehr weit gefasst ist. Du sollst aus der Datei lesen.

Ganz ehrlich: Du hast massive Lücken bei den Grundlagen. Die musst du erst aufarbeiten. Ich kann dir garantieren, dass dein Programm nicht fertig wird, solange du ohne Sinn und Vestand daran herumprobierst. Du kannst dich nicht langsam durch Trial&Error an das richtige Programm heranarbeiten, weil ein richtiges Programm komplett anders aussehen kann als ein fast richtiges.

Die strcmps zum Beispiel hast du wild über den Code verteilt, offenbar nach dem Prinzip "viel hilft viel". Aber so wird das nichts. Beim Programmieren musst du wissen, was du tust.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.