telefonbuch
-
habe ein problem.
#include <stdio.h> #define FILNAM "telefonbuch" struct TelefonBuch { char name[40]; char strasse[30]; char ort[30]; int telefon; int handy; }telefonbuch; int main() { FILE *pfile; pfile = fopen (FILNAM, "w"); if (!pfile) printf("Fehler beim Oeffnen"); return(0); } do { printf("Name eingeben\n"); scanf("%s", telefonbuch.name); printf("Straße eingeben\n"); scanf("%s", telefonbuch.strasse); printf("Wohnort eingeben\n"); scanf("%s", telefonbuch.ort); printf("Telefon eingeben\n"); scanf("%d", telefonbuch.telefon); printf("Handy eingeben\n"); scanf("%d", telefonbuch.handy); fwrite(&telefonbuch, sizeof(telefonbuch), 1, pfile); printf("Weitere Einträge erstellen?(J/N)\n"); scanf("%s" ,ch); while ((ch[0]=='j')|| (ch[0]=='J')); } fclose(pfile); prinft("Gespeichert!!!\n"); }
könnt ihr mir sagen ob da ein Fehler drin ist.
mein compiler sagt nämlich es geht nicht
-
Das while muss nach der do Klammer kommen.
Und bitte, ich habe es dir in dem anderen Thread schon gesagt, poste die Fehlermeldung immer gleich mit.
-
hab dass geändert. geht totzdem net
meldung:parse error before "do"
-
ja, da is eine Klammer zuviel. Lösch sie.
-
#include <stdio.h> #define FILNAM "telefonbuch" struct TelefonBuch { char name[40]; char strasse[30]; char ort[30]; int telefon; int handy; char ch[10]; }telefonbuch; int main() { FILE *pfile; pfile = fopen (FILNAM, "w"); if (!pfile) printf("Fehler beim Oeffnen"); return(0); do { printf("Name eingeben\n"); scanf("%s", telefonbuch.name); printf("Straße eingeben\n"); scanf("%s", telefonbuch.strasse); printf("Wohnort eingeben\n"); scanf("%s", telefonbuch.ort); printf("Telefon eingeben\n"); scanf("%d", telefonbuch.telefon); printf("Handy eingeben\n"); scanf("%d", telefonbuch.handy); fwrite(&telefonbuch, sizeof(telefonbuch), 1, pfile); printf("Weitere Einträge erstellen?(J/N)\n"); scanf("%s" ,telefonbuch.ch); } while ((telefonbuch.ch[0]=='j')|| (telefonbuch.ch[0]=='J')); fclose(pfile); prinft("Gespeichert!!!\n"); }
edit:^^ hab den code jetzt richtig gemacht.
so jetzt ist nur noch eine meldung da:
ch undecleared(first youse in this function)
-
hab den fehler gefunden.
nochmal danke
edit: na super. jetzt hat es endlich mal compiliert und dass programm geht trotzdem nicht. es schließt einfach gleich wieder befor ich auch nur eine eingabe machen konnte.
-
Wie, ohne irgendeinen Text oder Meldung?
-
ja. beim compilieren zeigt es an Errors=0
und dann öffnet sich dass programm einfach und schließt sich danach direkt wieder.
jetzt kommt der teil bei dem es zum kaffetrinken kommt *g*
-
vor dem do{ .. } while ..
return(0);
muss weg.
Kurt
-
Ich glaube eher du brauchst eine Klammer fürs if, da die return Anweisung wohl dazu gehört und abbrechen soll, wenn die Datei nicht gefunden wurde.
-
Hi folks,
bau mal in deinen Code nach jedem scanf()-AUfruf ein
while(getchar()!='\n');
ein. Das löscht den Tastaturpuffer! Das ist nötig, um bei einem folgenden scanf()-Aufruf keine unerwünschten Zeichen von der vorherigen Eingabe einzulesen.
Chiao
-
randa schrieb:
Ich glaube eher du brauchst eine Klammer fürs if, da die return Anweisung wohl dazu gehört und abbrechen soll, wenn die Datei nicht gefunden wurde.
hier kommt genauso wie wenn ich return weglasse die meldung:
[link error] undefined reference to 'printf'