Visual Fehlermeldungen??



  • Hallo,

    Ich habe ein Problem. Ich muss für eine Vorlesung eine Fallstudie zur Geldtransaktion in C programmieren. Das habe ich auch soweit geschafft. Der Compiler von Visual 2010 gibt mir nun aber folgende Fehler aus:

    Fehler 10 error C2065: 'betrag': nichtdeklarierter Bezeichner zeile 59
    Fehler 12 error C2065: 'betrag': nichtdeklarierter Bezeichner zeile 60
    Fehler 7 error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' zeile 51
    Fehler 8 error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' zeile 52
    Fehler 9 error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' zeile 53

    Hier mein Code:

    main funktion:

    #include <stdlib.h>
    #include <stdio.h>
    #include "consoleutil.h"
    
    struct kunde {
    	char name[30];
    	int kundennr;
    	float saldo;
    } sender, empfaenger;
    
    void kontoinhaber_einlesen(struct kunde *kontoinhaber) {
    
    	printf("Sender\nName:");
    	scanf("%s", kontoinhaber->name);
    
    	printf("Kundennummer:");
    	scanf("%d", &kontoinhaber->kundennr);
    
    	printf("Saldo:");
    	scanf("%f", &kontoinhaber->saldo);
    }
    
    void ausgabe_eingabe(struct kunde *empfaenger, struct kunde *sender) {
    
    	printf("Sie gaben ein:");
    	printf("EMPFAENGER:\n");
    	printf("NAME: %s\n", empfaenger->name);
    	printf("Kundennr: %d\n", empfaenger->kundennr);
    	printf("SALDO: %f\n", empfaenger->saldo);
    	printf("/n");
    	printf("SENDER:\n");
    	printf("NAME: %s\n", sender->name);
    	printf("Kundennr: %d\n", sender->kundennr);
    	printf("SALDO: %f\n", sender->saldo);
    }
    void betrag_einlesen(float *betrag, struct kunde *empfaenger, struct kunde *sender) {
    
    	printf("Geben Sie den Betrag ein, der transferiert werden soll:");
    	scanf("%f", betrag);
    }
    
    void transfer(float betrag, struct kunde *sender, struct kunde *empfaenger) {
    
    	sender->saldo = sender->saldo - betrag;
    	empfaenger->saldo = empfaenger->saldo + betrag;
    }
    
    int main(void) {
    	initConsoleFlushing();
    	float betrag = 0;
    	struct kunde sender;
    	struct kunde empfaenger;
    
    	printf(":::GELDTRANSFER:::\n");
    	kontoinhaber_einlesen(&sender);
    	kontoinhaber_einlesen(&empfaenger);
    	ausgabe_eingabe(&empfaenger, &sender);
    	betrag_einlesen(&betrag, &empfaenger, &sender);
    	transfer(betrag, &empfaenger, &sender);
    	ausgabe_eingabe(&empfaenger, &sender);
    	return EXIT_SUCCESS;
    

    consoleutil.c:

    #include "consoleutil.h"
    
    /*
     * Hilfsmethode um fflush() Aufrufe zu vermeiden
     */
    void initConsoleFlushing() {
    	setvbuf(stdout, NULL, _IONBF, 0);
    	setvbuf(stderr, NULL, _IONBF, 0);
    }
    

    consoleutil.h:

    #ifndef CONSOLEUTIL_H_
    #define CONSOLEUTIL_H_
    
    #include <stdio.h>
    
    /*
     * Hilfsmethode um fflush() Aufrufe zu vermeiden
     */
    void initConsoleFlushing();
    
    #endif /* CONSOLEUTIL_H_ */
    

    Bitte helft mir, ich bin am verzweifeln...

    Liebe Grüße,
    micrdy


  • Mod

    Visual C unterstützt meines Wissens nach nicht den C99-Standard. Ergo müssen alle Variablendeklarationen am Anfang einer Funktion stehen. Bei dir wird jedoch davor noch initConsoleFlushing aufgerufen. Mach die Variablendeklarationen mal davor.



  • Vielen Dank, genau das wars! Wär ich nie drauf gekommen 😉


Anmelden zum Antworten