Bankkonto



  • 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.



  • //Bankkonto.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include "STRING.H"
    #include "stdlib.h"
    FILE *datei;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char Passwort[50+1], nummer[50+1], Betrag[50+1], Input[50+1];
    	int A = 'A', j = 'j', B, C;
    
    	while (j == 'J' || j == 'j')
    	{
    	system("Cls");
    
    	system("color 4C");
    
    	strcpy (nummer, "123");
    	printf ("\n\tBankomat\b");
    	printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    	printf ("Passwort: ");
    	scanf  ("%s", Passwort);
    
    		if (strcmp(Passwort, nummer)==0 )
    		{
    				printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    				fflush(stdin);
    				printf ("\nLogin erfolgreich\n");
    				printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    				datei = fopen("C:\\Dokumente und Einstellungen\\mamar\\Desktop\\konten.txt", "a+");
    				fgets(Betrag, sizeof(Betrag), datei);
    				printf ("\nKonto enth\x84lt: %s", Betrag);
    				sscanf(Betrag,"%d",&B);
    				printf ("\n(1)Abheben oder (2)Einzahlen? ");
    				scanf  ("%c", &A);
    				printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    				printf ("\nBetrag Eingeben: ");
    				scanf  ("%s", Input);
    				printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    				sscanf(Input,"%d",&C);
    
    				if (A == '1')
    					{
    							printf ("\nKonto enh\x84lt neu: %d",B - C);
    							printf ("\n\n~~~~~~~~~~~~~~~~~~~\n");
    							fprintf(datei, "\n%d", B - C);
    					}					
    
    				if (A == '2')
    					{
    							printf ("\nKonto enth\x84lt neu: %d", B + C);
    							printf ("\n~~~~~~~~~~~~~~~~~~~\n");
    							fprintf(datei, "\n%d", B + C);
    					}
    
    		}
    		else
    		{
    				printf ("\nERROR...\nSYSTEM FAILURE...\n");
    		}
    	printf ("\nNochmal (j/n)?");
    	fflush(stdin);
    	scanf ("%c", &j);
    	}	
    	printf ("\n");
    	return 0;
    
    }
    

    bin jetzt soweit...habe aber noch ein problem..wenn ich den Betrag eingebe übernimmt es ihn mir zwar ind die datei zeigt ihn mir beim nächsten versuch jedoch nicht an...

    ich will das ich einen betrag eingebn kann, es diesen speichert undbeim nächsten mal wieder ausgibt könnt ihr mir dabei helfen???

    mfg anonymer 😃


Anmelden zum Antworten