Bankkonto



  • Wie kann ich mit C ein "Bankkonto" machen, mit dem ich auf eine Datei namens konten.txt zugreifen, sie verändern und wieder abspeichern kann, erstellen??

    soweit bin ich schon:

    datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "r+");
    

    komme aber nicht mehr weiter bin froh wenn amn mir das erklären könnte...

    PS.
    Bin noch ein ziemlicher Anfänger

    vielen dank
    mfg anonymer



  • //Bankkonto.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include "stdlib.h"
    FILE *datei;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char Kontostand;
    	char Nummer;
    	char Passwort;
    
    	printf ("\nBankomat");
    	printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    	printf ("\nKontonummer: ");
    	scanf  ("%s", &Nummer);
    	printf ("Passwort: ");
    	scanf  ("%s", &Passwort);
    	printf ("\n");
    
    	datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "r+");
    	printf ("\nKontostand: ");
    	fscanf (datei, "%c", &Kontostand);
    	fprintf (datei, "%s, %s");
    	return 0;
    
    }
    

    mitlerweile habe ich soviel, es kommt aber jedes mal eine Fehlermeldung....
    stack around...variable nummer was corrupted...



  • 1. Warum 2 Threads?
    2. char == Zeichen, char* == Zeichenkette (bzw. Pointer auf den Anfang des strings)



  • Wie schon gesagt ich bin Anfänger...
    Komme mit den Begriffen och nicht so zurecht...



  • Wie schon gesagt ich bin Anfänger...
    Komme mit den Begriffen och nicht so zurecht...



  • Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum Datenbanken in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Und du machst alles doppelt du Troll!



  • Anonymer schrieb:

    mitlerweile habe ich soviel, es kommt aber jedes mal eine Fehlermeldung....
    stack around...variable nummer was corrupted...

    du 'scanfst' strings. deine variablen sind aber einfach, kleine 'char'.
    das haut nicht hin. mach's z.b. mit arrays.
    🙂



  • Danke für den Tipp...ist hilfreich, ich wollte aber wissen wie ich die Datei richtig öffnen kann...

    mfg anonymer



  • Anonymer schrieb:

    Danke für den Tipp...ist hilfreich, ich wollte aber wissen wie ich die Datei richtig öffnen kann...

    fopen ist schon ok.
    🙂



  • und wie kann ich den Inhaldt meiner Datei ausgeben lassen, d.h. ich möchte etwas in die Datei schreiben dan mit C öffnen sehen was drinsteht, un d das nach belieben ändern...

    mfg anonymer



  • #include "stdafx.h"
    #include "STRING.H"
    FILE *datei;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char Passwort[50+1], Kontostand[50+1];
    	char nummer[50+1];
    	strcpy (nummer, "1123");
    	printf ("\nBankomat");
    	printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    	printf ("Passwort: ");
    	scanf  ("%s", Passwort);
    
    	if (strcmp(Passwort, nummer)==0 )
    	{
    	printf ("\nLogin erfolgreich\n");
    	printf ("Ihr Konto enthaelt %s", datei);
    	datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "a+");
    	fprintf (datei, "Erfolgreicher Zugriff\n");
    	}
    	else
    	{
    	datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "a+");
    	fprintf (datei, "Fehlerhafter Zugriff\n");
    	}
    	return 0;
    
    }
    

    Ich habe mal das probiert...gibt mir jedoch als Inhalt <NULL> aus...

    mdf anonymer



  • Du gibst ja auch den Filepointer aus, nicht den Inhalt der Datei. Und das noch dazu, bevor Du die Datei überhaupt geöffnet hast.

    Die logische Abfolge der Schritte sollte sich eigentlich aus dem Sinn ergeben...

    Zum Einlesen:

    // bis zum nächsten "Whitespace"
    fscanf(datei, "%s", Kontostand);
    // oder, ganze Zeile
    fgets(Kontostand, sizeof(Kontostand), datei);
    


  • Du solltest dir auch gleich mal ein vernünftiges Einrücken angewöhnen. Bei Blöcken (if, while, ...) rückst du den Code, den die Klammern umschließen, um 2-4 (ge nach Belieben) Zeichen nach rechts ein.



  • Danke, und wie sieht es mit dem ausgebn aus??.....Kann mir da auch jemand helfen??

    mfg anonymer



  • Hallo,

    Anonymer schrieb:

    Danke, und wie sieht es mit dem ausgebn aus??.....Kann mir da auch jemand helfen??

    mfg anonymer

    Das kannst/solltest du auch mit fputs erledigen, wenn keine Formatierung nötig ist:

    fputs("Das soll in die Datei, mit Zeilenumbruch\n", datei);
    

    MfG,

    Probe-Nutzer



  • Danke,

    Ich habe nun vor einen bestimmten Betrag in die Datei konten.txt zu schreiben....Dann diesen Betrag anzeigen lassen...Geld "abheben" oder "einzahlen"....
    Habe leider noch schwirigkeiten mit dem ganzen 😞

    mfg anonymer



  • Anonymer schrieb:

    Danke,

    Ich habe nun vor einen bestimmten Betrag in die Datei konten.txt zu schreiben....Dann diesen Betrag anzeigen lassen...Geld "abheben" oder "einzahlen"....
    Habe leider noch schwirigkeiten mit dem ganzen 😞

    mfg anonymer

    Wo genau sind die Schwierigkeiten? Was probierst du gerade mit welchem Code? Was ist unklar?

    MfG,

    Probe-Nutzer



  • Ich möchte das es mir den Betrag den ich in der datei aufgeschrieben habe anzeigt, wie ich ihn ändern kann weiss ich schon, aber das anzeigen funktioniert einfach noh nicht...

    FILE *datei;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char Passwort[50+1], nummer[50+1], Betrag[50+1];
    
    	strcpy (nummer, "1123");
    	printf ("\nBankomat");
    	printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    	printf ("Passwort: ");
    	scanf  ("%s", Passwort);
    
    		if (strcmp(Passwort, nummer)==0 )
    		{
    				printf ("\nLogin erfolgreich\n");
    				printf ("\nBetrag Eingeben: ");
    				scanf ("%s", Betrag);
    				datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "w+");
    				printf ("Konto enth\x84lt %s\n", Betrag);
    				fprintf (datei, "Neuer Kontostand: %s\n", Betrag);
    		}
    		else
    		{
    				printf ("\nERROR...\nSYSTEM FAILURE...\n");
    				datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "a+");
    		}
    	return 0;
    
    }
    


  • Dafür musst Du die Datei mit "r" öffnen und eine der bereits genannten Lesefunktionen auf die Datei anwenden. Wie das auf der Konsole mit scanf ohne f vorne geht, weißt Du ja schon. Probier's einfach mal aus.


Anmelden zum Antworten