Hilfe, wieso geht der Code nicht???
-
kann mir mal jemand sagen wo da der Fehler ist, ich weis ist nicht schön programmiert, der code soll mit zwei funktionen laufen
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream.h> char decoder(); char coder(); main() { system("cls"); char option, pfad; printf ("Das Dokument wird in folgenden Pfad gespeichert\n\Code.txt"); getch (); system("cls"); //bildschirm löschen //ausgabe am monitor printf ("\t\t\t\tCODIRER/DECODIERER\n\n"); printf ("\t\tWaehlen sie der folgenden Optionen aus\n\n\t\t(D)ecodieren\t(C)odiren\t(E)xit\n"); //eingabe für die auswahl der optionen scanf ("%c", &option); switch (option) // options auswahl mit sprüngen { case 'D' : char decoder(); break; case 'd' : char decoder(); break; case 'C' : char coder(); break; case 'c' : char coder(); break; case 'E' : exit(0); break; case 'e' : exit(0); break; default: // bei fehleingabe wir ausgegeben printf ("Falsche eingabe!!!"); getch(); break; } } //______________________________________________________________________________ char coder() { char wort[1000], cod[1000]; system("cls"); printf ("\t\t\nGeben sie ein wort ein das Codiert werden soll:\n"); gets (wort); //eingabe des textes strlen(wort); //wörter länge wird berechnet for (int i=0; i<=strlen(wort); i++) //codieren des textes { cod[i]=wort[i]+14; } printf ("Zeichen: %i ", strlen(wort)); // ausgabe der zeichen länge printf ("Codierter text:\n%s", cod); // ausgabe des codierten textes getch(); //Ausgabe in einer Text verzeichnis speichern muss noch bearbeitet werden } //______________________________________________________________________________ char decoder() { char cod [1000]; char decod[1000]; int i; system("cls"); printf ("\t\t\tDer Codierte Text wir nun Decodiert\n"); printf ("\n\t\t\tGeben Sie den Codierten Text ein:\n"); gets (cod); strlen (cod); for (int i=0; i<=strlen(cod); i++) //decodiert den verschlüsselten text { decod[i]=cod[i]-14; } printf ("Der Orignal Text Lautet: \n%s", decod); //ausgabe des orignal textes getch(); }
-
was macht's denn? compiliert's nicht?
-
... und falls es compiliert: Was macht es und was soll es machen.
Einen Fehler zu finden ist schon mühsam genug, also erwarte nicht,
das wir auch noch rumraten, was für ein Fehler vorliegt.
-
Soweit ich das jetzt erkenne willst du einen Text codieren und decodieren (Verschiebung um 14 Zeichen im Zeichensatz), nur was übergigst du den Funktionen? Und was sollen sie mit "char" zurückliefern???
char liefert nur ein zeichen.
-
der code soll ja auch die codieren und decodieren
nur das soll in einer funktion rein, aber wie das genau die schritte in einer funktion rein schreibt das weis ich nicht, eigendlich sollen ja nur die for schleifen in den funktionen stehen, jede schleife in einer anderen funktion, ich hab das schon mal mit goto geschreiben aber mein lehrer wollte das ich das mit funktionen schreiben soll und nun bin ich erst so weit und schon verzweifelt ...
-
Das ist ei Verschlüsselungsprogramm das ich mal geschrieben habe, vielleicht hilfts dir, mußt es halt nur für deine zwecke verändern.
#include <iostream.h> void schluessel(char *string, char *zcopy, int methode, int anzahl){ strcpy(zcopy,string); switch(methode){ case 1: strrev(string); break; case 2: for(unsigned int i=0;i<strlen(string);i++){ string[i]=string[i]+anzahl; } break; case 3: for(int a=1;a<=255;a++){ for(unsigned int i=0;i<strlen(string);i++){ zcopy[i]=string[i]+a; } cout << a << ": "; cout << zcopy << endl; } break; } } void main(){ char zeichen[81]; char zcopy[81]; int auswahl; int anzahl=0; cout << "Geben Sie die Zeichenkette ein:\n"; cin.getline(zeichen,80); cout << "Waehlen Sie die Methode:\n"; cout << "<1> Umkehrung\n"; cout << "<2> Verschiebung\n"; cout << "<3> Etschluesseln\n"; cin >> auswahl; if(auswahl==2){ cout << "Um wieviel Zeichen?: "; cin >> anzahl; } schluessel(zeichen,zcopy,auswahl,anzahl); cout << "Das Ergebnis:\n"; cout << zeichen; char p[50]; cin.getline(p,50); cin.getline(p,50); }
-
und so schreibst du das in die Dateien jetzt kannst ja ein bißchen mit beiden experimentieren.
#include <iostream.h> #include <fstream.h> #include <string.h> void schluessel(char *kette, int methode, int anzahl); void schluessel(char *kette, int methode, int anzahl){ switch(methode){ case 1: for(unsigned int i=0;i<strlen(kette);i++){ kette[i]=kette[i]+anzahl; } break; case 2: for(unsigned int i=0;i<strlen(kette);i++){ kette[i]=kette[i]-anzahl; } break; } } void main(){ char Filename[16]; char Eingabe[81]; char ausvers[81]; char ausunvers[81]; char lese; cout << "Dateiname ohne .txt: "; cin.getline(Filename,15); strcat(Filename,".txt"); ofstream fout(Filename); cout << "Bitte die Zeichenkette eingeben:\n"; cin.getline(Eingabe,80); schluessel(Eingabe,1,56); fout << Eingabe << endl; fout.close(); ifstream fin(Filename); int i=0; while(fin.get(lese)){ ausvers[i]=lese; lese=lese-56; ausunvers[i]=lese; i++; } fin.close(); cout << "Verschluesselt:\n"; cout << ausvers << endl << endl; cout << "Unverschluesselt:\n"; cout << ausunvers << endl << endl; char p[50]; cin.getline(p,50); }sorry wenn der Code nicht standard ist, aber das grundprinzip sollte klar werden.
-
Vampir87 schrieb:
...wieso geht der Code nicht???
Ganz klar: Weil er keine Beine hat !
Nochmal: Du bekommst hier im Forum gut Hilfe, aber die wenigsten haben Lust, stundenlang rumzuraten
a) Was Du von dem Code erwartest und
b) was davon nicht erfüllt wird.DU könntest das in 2 Sätzen schreiben und dann stürzen sich die Leute gerne darauf, WARUM er Deine Erwartungen nicht erfüllt.
Mal ein Vergleich: Wenn die Frage "Warum bekomme ich das Ding nicht ?" nicht zufriedenstellend beantwortet wird, ist das nicht unbedingt ein Zeichen mangelnder Hilfsbereitschaft.
Gruß,
Simon2.
-
Vampir87 schrieb:
switch (option) // options auswahl mit sprüngen { case 'D' : char decoder(); break; //... } }Das da ist KEIN Funktionsaufruf, sondern eine Funktions-Dekalation. Such dir am besten mal ein gutes Tutorial oder C-Handbuch und lass dir erklären, WIE man Funktionen aufruft.
(PS: Und die case-Fälle kannst du übrigens auch zusammenfassen ;))
-
okey ja dann danke euch allen, ich werd mal dann die sachen versuchen...