Hallo zusammen,
ich habe mir aus einem Buch folgendes Programm abgeleitet.Ich habe leider noch ein paar Fehler drinne und weis nicht genau woran es liegt. Das Programm soll neue Kunden anlegen und in eine Datei schreiben, aus Datei auslese.
Wäre nett von euch wenn mir einer sagen kann was ich falsch gemacht habe.Die Fehler sind in Zeile: 72,109,115 und 124.
Ich benutze den Kompiler Bloodshed DEV-C++.
DAnke schon mal im Voraus!
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat
short lesen (struct Kunden *kunde, short len);
short menue (void);
void neu (void);
short eingabe (struct Kunden *kunde, short anzahl, short len);
void ausgabe (struct Kunden *kunde);
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/
char vorname; /*Vorname neuer Kunde*/
char strasse; /*Strasse neuer Kunde*/
long postleitzahl; /*Postleizahl neuer Kunde*/
char stadt; /*Stadt neuer Kunde*/
};
int main (void)/*Hauptprogramm*/
{
struct Kunden Kunden_vek[ANZAHL+1]; /*Array der Kundenstructuren*/
struct Kunden *pt; /*Zeiger für Kunden*/
short anzahl; /*Anzahl Kunden*/
short wahl; /*Menue Auswahl*/
/*Datei Lesen*/
anzahl = lesen (Kunden_vek, ANZAHL);
for(;;)
{
wahl = menue(); /*Menue Darstellen*/
switch (wahl)
{
case NEU:
printf("\n** Neue Datei anlegen\n"); /*Datei neu anlegen*/
neu();
anzahl=0;
Kunden_vek[0].postleitzahl=-1;
break;
case EINGABE:
printf("\n** Daten eingeben\n"); /*Dateieingabe*/
anzahl=eingabe (Kunden_vek,anzahl,ANZAHL);
Kunden_vek[0].postleitzahl=-1;
break;
case AUSGABE:
printf("\n*** Daten ausgeben\n\n"); /*Dateiausgabe auf Bildschirm*/
for (pt=Kunden_vek;pt->postleitzahl!=-1;pt++)
ausgabe(pt);
break;
case ENDE:
printf("\n*** Programmende\n");
return 0;
}/*switch*/
}/*for*/
}/*Main*/
short int lesen (struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen (FILNAM,"r"); /*Datei zum lesen öffnen*/
if (!pfile)
{
kunde[0].postleitzahl=-1;
return(0);
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s",kunde[index].name);
if(anzahl==EOF)
break;
fscanf(pfile,"%g %d %d %c",
&kunde[index].vorname,
&kunde[index].strasse,
&kunde[index].postleitzahl,
&kunde[index].stadt);
}
fclose(pfile); /*DAtei schliesen*/
kunde[index].postleitzahl=-1;
return(index);
}
short menue()/*Menueabfragen und Auswahl*/
{
short wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
void neu()/*neue Datei anlegen*/
{
FILE *pfile;
pfile = fopen(FILNAM,"w"); fclose(pfile);
}
short eingabe (struct Kunden *kunde, short anzahl, short len)/*Eingabe der daten in das Array *kunde */
{
FILE *pfile;
short index;
pfile = fopen (FILNAM,"a");
if (!pfile)
{
printf("Zugriffsfehler!\n");return(anzahl);
}
for (index=anzahl; index<len; index++)/*Dateneingabe mit gleichzeitigem Speichern*/
{
printf("Kunden-Name:\n");
scanf("%s",kunde[index].name);
if(wagen[index].name[0]=='*')break;
printf("vorname strasse postleitzahl stadt:\n");
scanf("%g %d %d %c",&kunde[index].vorname,
&kunde[index].stadt);
fprintf(pfile,"%s\n",kunde[index].name);
fprintf(pfile,"%g %d %d %c\n",kunde[index].vorname,
kunde[index].strasse,kunde[index].postleitzahl,kunde[index].stadt);
}
fclose(pfile);/*Datei schließen*/
kunde[index].postleitzahl=-1;/*Rückgabe der Anzahl*/
return(index);
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat
short lesen (struct Kunden *kunde, short len);
short menue (void);
void neu (void);
short eingabe (struct Kunden *kunde, short anzahl, short len);
void ausgabe (struct Kunden *kunde);
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/
char vorname; /*Vorname neuer Kunde*/
char strasse; /*Strasse neuer Kunde*/
long postleitzahl; /*Postleizahl neuer Kunde*/
char stadt; /*Stadt neuer Kunde*/
};
int main (void)/*Hauptprogramm*/
{
struct Kunden Kunden_vek[ANZAHL+1]; /*Array der Kundenstructuren*/
struct Kunden *pt; /*Zeiger für Kunden*/
short anzahl; /*Anzahl Kunden*/
short wahl; /*Menue Auswahl*/
/*Datei Lesen*/
anzahl = lesen (Kunden_vek, ANZAHL);
for(;;)
{
wahl = menue(); /*Menue Darstellen*/
switch (wahl)
{
case NEU:
printf("\n** Neue Datei anlegen\n"); /*Datei neu anlegen*/
neu();
anzahl=0;
Kunden_vek[0].postleitzahl=-1;
break;
case EINGABE:
printf("\n** Daten eingeben\n"); /*Dateieingabe*/
anzahl=eingabe (Kunden_vek,anzahl,ANZAHL);
Kunden_vek[0].postleitzahl=-1;
break;
case AUSGABE:
printf("\n*** Daten ausgeben\n\n"); /*Dateiausgabe auf Bildschirm*/
for (pt=Kunden_vek;pt->postleitzahl!=-1;pt++)
ausgabe(pt);
break;
case ENDE:
printf("\n*** Programmende\n");
return 0;
}/*switch*/
}/*for*/
}/*Main*/
short int lesen (struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen (FILNAM,"r"); /*Datei zum lesen öffnen*/
if (!pfile)
{
kunde[0].postleitzahl=-1;
return(0);
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s",kunde[index].name);
if(anzahl==EOF)
break;
fscanf(pfile,"%g %d %d %c",
&kunde[index].vorname,
&kunde[index].strasse,
&kunde[index].postleitzahl,
&kunde[index].stadt);
}
fclose(pfile); /*DAtei schliesen*/
kunde[index].postleitzahl=-1;
return(index);
}
short menue()/*Menueabfragen und Auswahl*/
{
short wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
void neu()/*neue Datei anlegen*/
{
FILE *pfile;
pfile = fopen(FILNAM,"w"); fclose(pfile);
}
short eingabe (struct Kunden *kunde, short anzahl, short len)/*Eingabe der daten in das Array *kunde */
{
FILE *pfile;
short index;
pfile = fopen (FILNAM,"a");
if (!pfile)
{
printf("Zugriffsfehler!\n");return(anzahl);
}
for (index=anzahl; index<len; index++)/*Dateneingabe mit gleichzeitigem Speichern*/
{
printf("Kunden-Name:\n");
scanf("%s",kunde[index].name);
if(wagen[index].name[0]=='*')break;
printf("vorname strasse postleitzahl stadt:\n");
scanf("%g %d %d %c",&kunde[index].vorname,
&kunde[index].stadt);
fprintf(pfile,"%s\n",kunde[index].name);
fprintf(pfile,"%g %d %d %c\n",kunde[index].vorname,
kunde[index].strasse,kunde[index].postleitzahl,kunde[index].stadt);
}
fclose(pfile);/*Datei schließen*/
kunde[index].postleitzahl=-1;/*Rückgabe der Anzahl*/
return(index);
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat
short lesen (struct Kunden *kunde, short len);
short menue (void);
void neu (void);
short eingabe (struct Kunden *kunde, short anzahl, short len);
void ausgabe (struct Kunden *kunde);
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/
char vorname; /*Vorname neuer Kunde*/
char strasse; /*Strasse neuer Kunde*/
long postleitzahl; /*Postleizahl neuer Kunde*/
char stadt; /*Stadt neuer Kunde*/
};
int main (void)/*Hauptprogramm*/
{
struct Kunden Kunden_vek[ANZAHL+1]; /*Array der Kundenstructuren*/
struct Kunden *pt; /*Zeiger für Kunden*/
short anzahl; /*Anzahl Kunden*/
short wahl; /*Menue Auswahl*/
/*Datei Lesen*/
anzahl = lesen (Kunden_vek, ANZAHL);
for(;;)
{
wahl = menue(); /*Menue Darstellen*/
switch (wahl)
{
case NEU:
printf("\n** Neue Datei anlegen\n"); /*Datei neu anlegen*/
neu();
anzahl=0;
Kunden_vek[0].postleitzahl=-1;
break;
case EINGABE:
printf("\n** Daten eingeben\n"); /*Dateieingabe*/
anzahl=eingabe (Kunden_vek,anzahl,ANZAHL);
Kunden_vek[0].postleitzahl=-1;
break;
case AUSGABE:
printf("\n*** Daten ausgeben\n\n"); /*Dateiausgabe auf Bildschirm*/
for (pt=Kunden_vek;pt->postleitzahl!=-1;pt++)
ausgabe(pt);
break;
case ENDE:
printf("\n*** Programmende\n");
return 0;
}/*switch*/
}/*for*/
}/*Main*/
short int lesen (struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen (FILNAM,"r"); /*Datei zum lesen öffnen*/
if (!pfile)
{
kunde[0].postleitzahl=-1;
return(0);
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s",kunde[index].name);
if(anzahl==EOF)
break;
fscanf(pfile,"%g %d %d %c",
&kunde[index].vorname,
&kunde[index].strasse,
&kunde[index].postleitzahl,
&kunde[index].stadt);
}
fclose(pfile); /*DAtei schliesen*/
kunde[index].postleitzahl=-1;
return(index);
}
short menue()/*Menueabfragen und Auswahl*/
{
short wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
void neu()/*neue Datei anlegen*/
{
FILE *pfile;
pfile = fopen(FILNAM,"w"); fclose(pfile);
}
short eingabe (struct Kunden *kunde, short anzahl, short len)/*Eingabe der daten in das Array *kunde */
{
FILE *pfile;
short index;
pfile = fopen (FILNAM,"a");
if (!pfile)
{
printf("Zugriffsfehler!\n");return(anzahl);
}
for (index=anzahl; index<len; index++)/*Dateneingabe mit gleichzeitigem Speichern*/
{
printf("Kunden-Name:\n");
scanf("%s",kunde[index].name);
if(wagen[index].name[0]=='*')break;
printf("vorname strasse postleitzahl stadt:\n");
scanf("%g %d %d %c",&kunde[index].vorname,
&kunde[index].stadt);
fprintf(pfile,"%s\n",kunde[index].name);
fprintf(pfile,"%g %d %d %c\n",kunde[index].vorname,
kunde[index].strasse,kunde[index].postleitzahl,kunde[index].stadt);
}
fclose(pfile);/*Datei schließen*/
kunde[index].postleitzahl=-1;/*Rückgabe der Anzahl*/
return(index);
main.c:11:16: warning: missing terminating " character
main.c:14: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:14: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten
main.c:17: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:18: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c: In Funktion »main«:
main.c:38: Warnung: Übergabe des Arguments 1 von »lesen« von inkompatiblem Zeigertyp
main.c:52: Warnung: Übergabe des Arguments 1 von »eingabe« von inkompatiblem Zeigertyp
main.c:58: Warnung: Übergabe des Arguments 1 von »ausgabe« von inkompatiblem Zeigertyp
main.c: Auf höchster Ebene:
main.c:67: Fehler: In Konflikt stehende Typen für »lesen«
main.c:14: Fehler: Vorherige Deklaration von »lesen« war hier
main.c: In Funktion »lesen«:
main.c:72: Fehler: fehlendes abschließendes Zeichen "
main.c:72: Fehler: expected expression before »,« token
main.c:87: Warnung: format »%g« erwartet Typ »float *«, aber Argument 3 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 4 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 5 hat Typ »long int *«
main.c: In Funktion »menue«:
main.c:103: Warnung: format »%d« erwartet Typ »int *«, aber Argument 2 hat Typ »short int *«
main.c: In Funktion »neu«:
main.c:109: Fehler: fehlendes abschließendes Zeichen "
main.c:109: Fehler: expected expression before »,« token
main.c: Auf höchster Ebene:
main.c:111: Fehler: In Konflikt stehende Typen für »eingabe«
main.c:17: Fehler: Vorherige Deklaration von »eingabe« war hier
main.c: In Funktion »eingabe«:
main.c:115: Fehler: fehlendes abschließendes Zeichen "
main.c:115: Fehler: expected expression before »,« token
main.c:124: Fehler: »wagen« nicht deklariert (erste Benutzung in dieser Funktion)
main.c:124: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
main.c:124: Fehler: für jede Funktion in der er auftritt.)
main.c:127: Warnung: format »%g« erwartet Typ »float *«, aber Argument 2 hat Typ »char *«
main.c:127: Warnung: format »%d« erwartet Typ »int *«, aber Argument 3 hat Typ »char *«
main.c:127: Warnung: zu wenig Argumente für Format
main.c:130: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »int«
main.c:130: Warnung: format »%d« erwartet Typ »int«, aber Argument 5 hat Typ »long int«
main.c: Auf höchster Ebene:
main.c:138: Fehler: In Konflikt stehende Typen für »ausgabe«
main.c:18: Fehler: Vorherige Deklaration von »ausgabe« war hier
main.c: In Funktion »ausgabe«:
main.c:140: Warnung: format »%s« erwartet Typ »char *«, aber Argument 2 hat Typ »int«
main.c:140: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »char *«
main.c:140: Warnung: format »%c« erwartet Typ »int«, aber Argument 6 hat Typ »long int«
main.c:11:16: warning: missing terminating " character
main.c:14: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:14: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten
main.c:17: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:18: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c: In Funktion »main«:
main.c:38: Warnung: Übergabe des Arguments 1 von »lesen« von inkompatiblem Zeigertyp
main.c:52: Warnung: Übergabe des Arguments 1 von »eingabe« von inkompatiblem Zeigertyp
main.c:58: Warnung: Übergabe des Arguments 1 von »ausgabe« von inkompatiblem Zeigertyp
main.c: Auf höchster Ebene:
main.c:67: Fehler: In Konflikt stehende Typen für »lesen«
main.c:14: Fehler: Vorherige Deklaration von »lesen« war hier
main.c: In Funktion »lesen«:
main.c:72: Fehler: fehlendes abschließendes Zeichen "
main.c:72: Fehler: expected expression before »,« token
main.c:87: Warnung: format »%g« erwartet Typ »float *«, aber Argument 3 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 4 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 5 hat Typ »long int *«
main.c: In Funktion »menue«:
main.c:103: Warnung: format »%d« erwartet Typ »int *«, aber Argument 2 hat Typ »short int *«
main.c: In Funktion »neu«:
main.c:109: Fehler: fehlendes abschließendes Zeichen "
main.c:109: Fehler: expected expression before »,« token
main.c: Auf höchster Ebene:
main.c:111: Fehler: In Konflikt stehende Typen für »eingabe«
main.c:17: Fehler: Vorherige Deklaration von »eingabe« war hier
main.c: In Funktion »eingabe«:
main.c:115: Fehler: fehlendes abschließendes Zeichen "
main.c:115: Fehler: expected expression before »,« token
main.c:124: Fehler: »wagen« nicht deklariert (erste Benutzung in dieser Funktion)
main.c:124: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
main.c:124: Fehler: für jede Funktion in der er auftritt.)
main.c:127: Warnung: format »%g« erwartet Typ »float *«, aber Argument 2 hat Typ »char *«
main.c:127: Warnung: format »%d« erwartet Typ »int *«, aber Argument 3 hat Typ »char *«
main.c:127: Warnung: zu wenig Argumente für Format
main.c:130: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »int«
main.c:130: Warnung: format »%d« erwartet Typ »int«, aber Argument 5 hat Typ »long int«
main.c: Auf höchster Ebene:
main.c:138: Fehler: In Konflikt stehende Typen für »ausgabe«
main.c:18: Fehler: Vorherige Deklaration von »ausgabe« war hier
main.c: In Funktion »ausgabe«:
main.c:140: Warnung: format »%s« erwartet Typ »char *«, aber Argument 2 hat Typ »int«
main.c:140: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »char *«
main.c:140: Warnung: format »%c« erwartet Typ »int«, aber Argument 6 hat Typ »long int«
main.c:11:16: warning: missing terminating " character
main.c:14: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:14: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten
main.c:17: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c:18: Warnung: »struct Kunden« innerhalb Parameterliste deklariert
main.c: In Funktion »main«:
main.c:38: Warnung: Übergabe des Arguments 1 von »lesen« von inkompatiblem Zeigertyp
main.c:52: Warnung: Übergabe des Arguments 1 von »eingabe« von inkompatiblem Zeigertyp
main.c:58: Warnung: Übergabe des Arguments 1 von »ausgabe« von inkompatiblem Zeigertyp
main.c: Auf höchster Ebene:
main.c:67: Fehler: In Konflikt stehende Typen für »lesen«
main.c:14: Fehler: Vorherige Deklaration von »lesen« war hier
main.c: In Funktion »lesen«:
main.c:72: Fehler: fehlendes abschließendes Zeichen "
main.c:72: Fehler: expected expression before »,« token
main.c:87: Warnung: format »%g« erwartet Typ »float *«, aber Argument 3 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 4 hat Typ »char *«
main.c:87: Warnung: format »%d« erwartet Typ »int *«, aber Argument 5 hat Typ »long int *«
main.c: In Funktion »menue«:
main.c:103: Warnung: format »%d« erwartet Typ »int *«, aber Argument 2 hat Typ »short int *«
main.c: In Funktion »neu«:
main.c:109: Fehler: fehlendes abschließendes Zeichen "
main.c:109: Fehler: expected expression before »,« token
main.c: Auf höchster Ebene:
main.c:111: Fehler: In Konflikt stehende Typen für »eingabe«
main.c:17: Fehler: Vorherige Deklaration von »eingabe« war hier
main.c: In Funktion »eingabe«:
main.c:115: Fehler: fehlendes abschließendes Zeichen "
main.c:115: Fehler: expected expression before »,« token
main.c:124: Fehler: »wagen« nicht deklariert (erste Benutzung in dieser Funktion)
main.c:124: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
main.c:124: Fehler: für jede Funktion in der er auftritt.)
main.c:127: Warnung: format »%g« erwartet Typ »float *«, aber Argument 2 hat Typ »char *«
main.c:127: Warnung: format »%d« erwartet Typ »int *«, aber Argument 3 hat Typ »char *«
main.c:127: Warnung: zu wenig Argumente für Format
main.c:130: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »int«
main.c:130: Warnung: format »%d« erwartet Typ »int«, aber Argument 5 hat Typ »long int«
main.c: Auf höchster Ebene:
main.c:138: Fehler: In Konflikt stehende Typen für »ausgabe«
main.c:18: Fehler: Vorherige Deklaration von »ausgabe« war hier
main.c: In Funktion »ausgabe«:
main.c:140: Warnung: format »%s« erwartet Typ »char *«, aber Argument 2 hat Typ »int«
main.c:140: Warnung: format »%g« erwartet Typ »double«, aber Argument 3 hat Typ »char *«
main.c:140: Warnung: format »%c« erwartet Typ »int«, aber Argument 6 hat Typ »long int«
Manche Warnungen und Fehler kommen daher, dass du Dinge verwendest, bevor sie bekannt sind (zb die Struktur). Dagegen hilft umsortieren. Die Warnungen zu den Formatfunktionen solltest du ernstnehmen, und die Syntaxfehler rausnehmen, dann wird's schon gehen.
zeile 72,109,115 beziehen sich auf den selben fehler: in zeile 11 fehlt das abschließende anführungszeichen.
in zeile 124 scheint die variable wagen nicht bekannt zu sein.
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat"
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/ char vorname[NAMLEN]; /*Vorname neuer Kunde*/ char strasse[NAMLEN]; /*Strasse neuer Kunde*/ char stadt[NAMLEN]; /*Stadt neuer Kunde*/ int postleitzahl; /*Postleizahl neuer Kunde*/
};
int lesen(struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen(FILNAM,"r"); /*Datei zum lesen öffnen*/ if (!pfile)
{
printf("error open file");
return 0;
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s %s %d %s\n",
kunde[index].vorname,
kunde[index].strasse,
&kunde[index].postleitzahl,
kunde[index].stadt);
if(anzahl==EOF)
break;
}
fclose(pfile); /*DAtei schliesen*/ return index;
}
int menue()/*Menueabfragen und Auswahl*/
{
int wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat"
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/ char vorname[NAMLEN]; /*Vorname neuer Kunde*/ char strasse[NAMLEN]; /*Strasse neuer Kunde*/ char stadt[NAMLEN]; /*Stadt neuer Kunde*/ int postleitzahl; /*Postleizahl neuer Kunde*/
};
int lesen(struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen(FILNAM,"r"); /*Datei zum lesen öffnen*/ if (!pfile)
{
printf("error open file");
return 0;
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s %s %d %s\n",
kunde[index].vorname,
kunde[index].strasse,
&kunde[index].postleitzahl,
kunde[index].stadt);
if(anzahl==EOF)
break;
}
fclose(pfile); /*DAtei schliesen*/ return index;
}
int menue()/*Menueabfragen und Auswahl*/
{
int wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
#define NAMLEN 20 /*Maximale Laenge des Namens*/
#define ANZAHL 10 /*Maximale Anzahl Kunden*/
#define NEU 1 /*Zahl für Swich-Case Anweisung*/
#define AUSGABE 2 /*Zahl für Swich-Case Anweisung*/
#define EINGABE 3 /*Zahl für Swich-Case Anweisung*/
#define ENDE 4 /*Zahl für Swich-Case Anweisung*/
#define FILNAM "KUNDENTABELLE.dat"
struct Kunden/*Structuren*/
{
char name[NAMLEN]; /*Name vom neuen Kunden*/ char vorname[NAMLEN]; /*Vorname neuer Kunde*/ char strasse[NAMLEN]; /*Strasse neuer Kunde*/ char stadt[NAMLEN]; /*Stadt neuer Kunde*/ int postleitzahl; /*Postleizahl neuer Kunde*/
};
int lesen(struct Kunden *kunde, short len)/*Daten aus Datei lesen*/
{
FILE *pfile;
short index;
short anzahl;
pfile = fopen(FILNAM,"r"); /*Datei zum lesen öffnen*/ if (!pfile)
{
printf("error open file");
return 0;
}
for (index=0; index<len; index++) /*Daten aus Datei lesen*/
{
anzahl = fscanf(pfile,"%s %s %d %s\n",
kunde[index].vorname,
kunde[index].strasse,
&kunde[index].postleitzahl,
kunde[index].stadt);
if(anzahl==EOF)
break;
}
fclose(pfile); /*DAtei schliesen*/ return index;
}
int menue()/*Menueabfragen und Auswahl*/
{
int wahl;
printf("\nPKW-Programm\n\n");
printf("%d- Neue Datei anlegen\n",NEU);
printf("%d- Ausgabe der Dateien\n",AUSGABE);
printf("%d- Eingabe weiterer Daten\n",EINGABE);
printf("%d- Programmende\n",ENDE);
printf("\nWählen Sie eine Zahl:");
scanf("%d",&wahl);
return(wahl);
}
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.