Vigenere Ver- Entschlüsselung in C
-
Wen interessiert dieser Müll?
Alles Schrott.
Liebe Kinder, nicht nachmachen.
-
Wenn schon Kritik, dann konstruktive und sachliche Kritik.
Wenn du in einer Firma arbeitest du hast ein brainstorming,
Kaizen (PDCA), Fishbon-Ishikawa, FMEA oder andere QM-Meetings
kannst du auch keine Killerphrasen verwenden, es sei denn, du
willst deinen Job gleich wieder an den Nagel hängen.
-
Du hast keine Ahnung von C, das hast du mehrfach bewiesen.
Dein Code ist vollkommener Schrott.
Wenn du eine Frage zu Standard C hast, stelle sie hier in qualifizierter Form.
Und unterlasse alle deine "...gut gemeint..." Ratschläge, die interessieren niemanden, sind falsch und behindern die Problemlösung durch die qualifizierten Antworter hier im Forum.
-
Sorry, das ist Schrott.
In dem Stil hat man auf dem C64 in BASIC programmiert.Wenn du den Code, nach 20 Jahren, immer noch gut findest, hast du nichts dazu gelernt.
Etwas detailierte Kritik:
- unnötige gotoscanf
mit %s oder %[ ohne length-Modifier. Da kannst du auch gets nehmen.
- unnötige goto
- viel zu kompliziert
- unnötige goto
- nichtssagende oder irreführende Funktionsnamen
- unnötige goto
- unnötige POSIX-Funktionen
- der Code geht an der gefragten Aufgabe weit vorbei
Konstruiktive Kritik:
Schmeiß den Code weg und lösch den hier.
-
Ach Wutz lass doch deine lieben, netten, konstruktiven, nutzlosen, völlig unbrauchbare Kommentare bei dir zu Hause im Bett. Dich braucht keiner wenn du nur solchen (Zitat) Müll oder Schrott schreibst, vielen Dank.
Du hast keine Ahnung von C, das hast du mehrfach bewiesen.
Dein Code ist vollkommener Schrott.
Wenn du eine Frage zu Standard C hast, stelle sie hier in qualifizierter Form.
Und unterlasse alle deine "...gut gemeint..." Ratschläge, die interessieren niemanden, sind falsch und behindern die Problemlösung durch die qualifizierten Antworter hier im Forum.Ach ja freundlic wie eh und je. <333
Ich glaube ich habe 1 unter 10 deiner Antworten (oh entschuldige, wir sagen lieber hochqualifizierte Kommentare) gesehen, die tatsächlich mal etwas zum Inhalt beigetragen haben :OO
-
TocToc schrieb:
Ach Wutz lass doch deine lieben, netten, konstruktiven, nutzlosen, völlig unbrauchbare Kommentare bei dir zu Hause im Bett. Dich braucht keiner wenn du nur solchen (Zitat) Müll oder Schrott schreibst, vielen Dank.
Wutz ist sehr oft hilfreich.
Auch daß er rustyoldguys Ergüsse aus Sicht eines Fachmanns rezensiert, ist prima.TocToc schrieb:
Ich glaube ich habe 1 unter 10 deiner Antworten (oh entschuldige, wir sagen lieber hochqualifizierte Kommentare) gesehen, die tatsächlich mal etwas zum Inhalt beigetragen haben :OO
Diese Quote sehe ich bei Dir. Also kann mich jetzt an keinen Code von Dir erinnern, nur an das fachfremde Gemecker wie schrechlich gemein die Großen sind.
-
Sweet.
Weiß nicht ob du das bis jetzt bemerkt hast, bin Anfänger. Nur mal so nebenbei..Wutz ist sehr oft hilfreich.
Ich geh mal kurz lachen. Später vllt..
Auch daß er rustyoldguys Ergüsse aus Sicht eines Fachmanns rezensiert, ist prima.
Das ist aber schon sehr schöngeredet..
-
Nur interessiert das niemanden, ob oder was du zu meinen Antworten beizutragen hast; ich kann verstehen wenn du meine Beiträge nicht verstehst, ein Mindestmaß an Auffassungsgabe und Intellekt sind dafür nämlich notwendig.
Deine eigenen "Beiträge", in denen du nur dein irgendwo aufgeschnapptes Halbwissen ohne Sinn und Verstand nachplapperst sind ebenso falsch und dilettantisch wie die von dem oben zitierten Herrn, und behindern ebenso nur eine qualifizierte Problemlösung.
Trolle dich dahin wo du hergekommen bist und halt die Klappe, wenn sich Erwachsene unterhalten.
-
TocToc schrieb:
Weiß nicht ob du das bis jetzt bemerkt hast, bin Anfänger. Nur mal so nebenbei..
Mensch, dann sei doch froh, daß es hier Leute wie Wutz gibt!
Oder willste aus Wolf-Büchern und rustyoldguys Programmen lernen?
-
#include <stdio.h> #include <string.h> #include <ctype.h> #include <conio.h> void eingabepuffer_leeren(); void vigenere(char *text, char *schluessel); void einlesen(char *text, int lenText, char *schluessel, int lenSchluessel); int main() { char auswahl; char text[100]; char schluessel[100]; do { einlesen(text, sizeof(text), schluessel, sizeof(schluessel)); printf("\n### Auswahl ###\n\n"); printf("V) Verschluesseln\n"); printf("E) Entschluessen\n"); printf("B) Beenden\n"); printf("\nAuswahl: "); scanf("%c", &auswahl); eingabepuffer_leeren(); switch (auswahl) { // Auswahl 1 bzw. 2: // Macht in diesem Fall keinen Unterschied, da Verschlüsselung und Entschlüsselung analog sind bzw. sein sollten... case 'v': case 'V': vigenere(text, schluessel); break; case 'b': case 'B': printf("Programm wird beendet.\n"); break; default: printf("Fehlerhafte Eingabe!\n"); } } while (auswahl != 'b' && auswahl != 'B'); return 0; } void eingabepuffer_leeren() { char c; while ((c= getchar()) != '\n' && c != EOF) /* verwerfen */ ; } void einlesen(char *text, int lenText, char *schluessel, int lenSchluessel) { printf("### Text/Schluessel ###\n"); printf("Text: "); fgets(text, lenText, stdin); printf("Schluessel: "); fgets(schluessel, lenSchluessel, stdin); } void vigenere(char *text, char *schluessel) { printf("Geheimtext: "); printf("<noch zu implementieren>\n"); printf("\n"); }
-
Es fehlt natürlich das case für die Entschlüsselung, denn da es ohnehin unnötig ist, hab ich es ausversehen wegoptimiert.
-
Ver- und entschlüsseln sind nicht gleich.
(könnte es, wenn der Schlüssel aus 'N' besteht)Der Prototyp sollte (IMHO) so aussehen:
void vigenere(char *geheimtext, size_t groesse_von_geheimtext, char *text, char *schluessel);
fgets lässt das '\n' im Text. Das könnte Probleme geben.
eingabepuffer_leeren() dunktioniert nur richtig, wenn c ein
int
ist.
Im übrigen ist der NAme der Funktion irreführend.Ein
auswahl = toupper(auswahl)
nach der Eingabe macht den Code auch lesbarer.
Deine Menüführung macht den User wütend.
Tipp:
Ein Leerzeichen vor dem %c beiscanf
wirkt manchmal Wunder (nicht unbedingt hier, aber es schadet nicht):scanf(" %c", &auswahl);