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 53Hier 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
-
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