ok jetzt stimmt es mit den Übergaben. Hab Das programm nochmal neu gestartet. Jetzt funktioniert es komischerweise. Danke für alle Antworten !! und für die Hilfe !!
Beiträge von flo2020
-
-
Danke für die schnellen Antworten. Also bei mir schaut das nun so aus. Der Fehler ist, das es jeden einzelnen Abschnitt normal ausführt, außer den Teil, den ich in eine Funktion verpackt habe. Das ganze läuft in einer While(1). (ich möchte nicht wirklich das Programm verschönern, ich muss nur etwas üben mit Funktionen zu arbeiten.)
Im menü von dem ganzen wörter buch steht was aber nicht weiter wichtig sein sollte für die Fehlerbehebung:
Codeprintf("1... Add word\n"); printf("2... Look up word\n"); printf("3... List all words of a language\n"); printf("4... Delete word\n"); printf("5... Exit\n\n");
Das ist meine umgeänderte Funktion:
Code
Alles anzeigenvoid list_all_words_deutsch(struct leo *x, int entry) //Funktionsname nicht look_up_word!! { int i=0; for(i=0;i<entry ;i++) { if(x[i].deutsch != "--") { printf("%s, ", x[i].deutsch); } } } void list_all_words_english(struct leo *x, int entry) { int i=0; for(i=0;i<entry ;i++) { if(x[i].english != "--") { printf("%s, ", x[i].english); } } }
Und so wird sie in der main aufgerufen:
-
@ Dimitrij. Ja das weiss ich schon. Das habe ich in einem anderen Abschnitt behandelt, in welchem Einträge gelöscht werden sollen. Und die Einträge, die gelöscht sind habe ich mit "--" inistialisiert. Mir geht es wirklich nur um die Parameter.
-
Hallo Leute,
Ich habe eine ganz bestimmte Frage und hoffe ihr könnt mir weiterhelfen:
Ich habe ein Wörterbuch programmiert wobei das nicht weiter wichtig ist was ich programmiert habe, sondern ich möchte das jetzt etwas verschönern und zwar mit Funktionen. Nur scheitere ich bei diesem leider. Ich hoffe ihr könnt mir weiterhelfen.
Das Programm funktioniert mit meinem Compiler so wie es geschrieben ist, nur wenn ich es auf Funktionen ändern möchte nicht. Ich poste nicht das ganze Programm, sondern nur den Abschnitt, welchen ich behandeln möchte. (In diesem Abschnitt geht es eigentlich nur darum, alle Wörter, welche in einem anderen Abschnitt des Programms eingetragen worden sind, wieder auszugeben und zwar, entweder auf deutsch oder english.)
Ich weiss es schaut nach etwas zu viel Code für ein Forum aus aber mir geht es im Grunde genommen ausschließlich um die Parameter und die zu übergebenen Argumente bezogen auf die Funktion. Wenn ich das GANZE Programm so aufrufe überspringt es mir diesen Teil und wird nicht ausgeführt. Ich hoffe ihr könnt mir weiterhelfen und danke im voraus.
So sieht meine derzeitige Struktur aus:
So hatte ich den zu behandelnden Abschnitt anfangs:Code
Alles anzeigenif(choice==3) { printf("Language(1 = Deutsch, 2 = English)"); scanf("%d", &which_language); if(which_language==1) { for(i=0;i<eintraege;i++) { if(buch[i].deutsch != "--") { printf("%s, ", buch[i].deutsch); } } } if(which_language==2) { for(i=0;i<eintraege;i++) { if(buch[i].english != "--") { printf("%s, ", buch[i].english); } } } }
Und so dachte ich mir könnte ich es umschreiben:Code
Alles anzeigenvoid look_word(struct leo *x, int entry ,int langu) { int i=0; printf("Language(1 = Deutsch, 2 = English)"); scanf("%d", &langu); if(langu==1) { for(i=0;i<entry ;i++) { if(x[i].deutsch != "--") { printf("%s, ", x[i].deutsch); } } } if(langu==2) { for(i=0;i<entry ;i++) { if(x[i].english != "--") { printf("%s, ", x[i].english); } } } }