Einzelnen Beitrag anzeigen
Ungelesen 19.01.14, 15:15   #5
PepTic
Anfänger
 
Registriert seit: Oct 2011
Beiträge: 5
Bedankt: 0
PepTic ist noch neu hier! | 0 Respekt Punkte
Standard

Die lokale Deklaration von "konten" blendet die frühere Deklaration in Zeile "13" von konto.h" aus.
main.c zeile 8

Der Rückgabewert wird ignoriert: "scanf" zeile 71
Der 2-Parameter im Aufruf von "scanf" muss die Adresse der Zeichenfolge sein. zeile 71

wie gesagt, das Problem ist, dass ich einges "verbaut" habe...

Zitat:
Zitat von NetWebs Beitrag anzeigen
Kannst du kein Englisch?

C ist das Problem, nutze Visual Studio (Deutsch)

Hab den Code nochmal überarbeitet:

Code:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include "konto.h" 
#include <conio.h>
int main() 
{ 
    int auswahl; 
	int IDZaehler = 100; 
	int kontoID;
	int kontoID2;
    double guthaben; 
    
	do
    { 
		printf("-----------------------------------KONTOFUEHRUNG--------------------------------\n");
		printf("Herzlich Willkommen \n");
		printf("------------------- \n\n");
        printf("1) Konto erstellen\n"); 
        printf("2) Konto anzeigen\n"); 
        printf("3) Konto loeschen\n"); 
        printf("4) Ueberweisung\n"); 
        printf("0) Beenden\n\n"); 
		printf("------------------- \n");
        printf("Auswahl: "); 
		scanf("%i", &auswahl);
		
        
		switch(auswahl) 
        { 
            case 0: 
				speichere_konto(kontoID);
                return 0; 
                break; 
            case 1: 
                erstelle_konto(IDZaehler); 
                IDZaehler++; 
                break; 
            case 2: 
                printf("Geben sie die Kontonummer ein: "); 
				scanf("%d", &kontoID); 
                zeige_konto(kontoID); 
                break; 
            case 3: 
                printf("Geben sie die Kontonummer ein: "); 
				scanf("%d", &kontoID); 
                loesche_konto(kontoID); 
				printf("Konto wurde geloescht\n");
                break; 
            case 4: 
                printf("Geben sie die Kontonummer ein, von der abgebucht werden soll: "); 
				scanf("%d", &kontoID); 
                printf("Geben sie die Kontonummer ein, an die ueberwiesen werden soll: "); 
				scanf("%d", &kontoID2); 
                printf("Geben sie den Betrag ein, der ueberwiesen werden soll: "); 
				scanf("%f", &guthaben); 
                ueberweisung(kontoID, kontoID2, guthaben); 
                break; 
            default: 
                break; 
        } 
		printf("Druecken Sie eine beliebige Taste um vorzufahren");
		getch();
		system("cls");
    } while(auswahl);
		return;
}

void erstelle_konto(int ID) 
{ 
	
	printf("\n\nVorname:     "); 
	scanf("%s", konten[ID].vorname); 
    printf("Nachname:    "); 
	scanf("%s", konten[ID].nachname); 
    printf("Kontostand:  "); 
	scanf("%f", &konten[ID].kontostand); 
    printf("Kontonummer: %d\n", ID); 
	konten[ID].kontonummer = ID;
    printf("Konto wurde erstellt!\n\n\n"); 
	
} 

void loesche_konto(int ID) //man kann nichtvorhandene konten löschen
{ 
    strcpy(konten[ID].vorname, ""); 
    strcpy(konten[ID].nachname, ""); 
    konten[ID].kontostand = 0; 
} 

void zeige_konto(int ID) 
{ 
    if(strlen(konten->vorname) == 0 || strlen(konten->nachname) == 0) 
	{ 
        printf("\n\nDieses Konto existiert nicht!\n\n\n"); 
    } 
    else 
    { 
        printf("\n\nVorname:     %s\n", konten[ID].vorname); 
        printf("Nachname:    %s\n", konten[ID].nachname); 
        printf("Kontostand:  %.2f\n", konten[ID].kontostand); 
        printf("Kontonummer: %d\n\n\n", konten[ID].kontonummer); 
    } 
} 

void speichere_konto(int ID) 
{ 
	
	FILE *datei; 
    datei = fopen("Konten.txt", "a+"); 
	
	if(datei == NULL)
		
	{
		printf("\nFEHLER BEIM SPEICHERN"); 
		return;
	}

	else
	{
		fprintf(datei, "Kontonummer: %d\nVorname:     %s\nNachname:    %s\nKontostand:  %.2f\n\n", konten[ID].kontonummer, konten[ID].vorname, konten[ID].nachname, konten[ID].kontostand); 
	}
    fclose(datei); 
	
} 

void ueberweisung(int vonID, int zuID, double guthaben) 
{ 
	

    if(konten->kontostand - guthaben < 0) 
    { 
        printf("\n\nNicht genug Guthaben!\n\n"); 
    } 
    else 
    { 
        konten[vonID].kontostand = konten[vonID].kontostand - guthaben; 
        konten[zuID].kontostand = konten[zuID].kontostand + guthaben; 
        printf("\n\nUeberweisung erfolgreich!\n\n"); 
    } 
}
Code:
struct konto
{ 
    char vorname[20]; 
    char nachname[20]; 
    double kontostand; 
    int kontonummer; 
}konten[1000];
typedef struct konto konto;

void erstelle_konto(int); 
void loesche_konto(int); 
void zeige_konto(int); 
void speichere_konto(int);
void ueberweisung(int, int, double);
Wenn ich jetzt Konto anzeigen auswähle, sagt er mir es existiert nicht.
in die Datei wird es aber geschrieben, nur der Kontostand ist 0.00

bekomme außerdem diesen Compilerfehler:
Nicht initialisierter Speicher "kontoID" wird verwendet.: Lines: 8, 9, 10, 11, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 31, 32

und

Die möglicherweise nicht initialisierte lokale Variable "kontoID" wurde verwendet.
PepTic ist offline   Mit Zitat antworten