000
25.04.2015, 13:35 Uhr
carponizer
|
Hallo, ich bin gerade dabei mein Projekt für die Uni zu programmieren. Die Aufgabe ist es ein Verschlüsselungs-Tool zu programmieren. Ziel ist es den Text einzugeben, diesen abzuspeichern und wieder aufrufen. Die komplette Menüstruktur, das Abspeicher sowie das Aufrufen von Texten ist bereits programmiert und funktioniert so wie es soll. Nur bei der eigentlichen Verschlüsselung durch ROT5 (d.h. die Zahlen eines Codes sollen jeweils um 5 Stellen verschoben werden) liegt ein Fehler im Quellcode den ich leider nicht finden kann. Geplant ist dies durch einen Zeiger zu machen, der die Ziffern um 5 Stellen verschiebt und danach jeweils eine Stelle weiter geht. Wäre nett, wenn Ihr mir helfen könntet.
Die Verschlüsselung ROT5 befindet sich in function.c* ziemlich unten. Die anderen Verschlüsselungsfunktionen wurden noch nicht ausprogrammiert. Sind aber ähnlich.
Mit freundlichen Grüßen
Carponizer
Hier mein Quellcode:
Mainfunktion:
C++: |
#include<stdio.h> #include<stdlib.h> #include"myheader.h"
int main() {
int i = 0;
while (i != 5) {
printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf(" Projekt 2015 \n\n"); printf(" Verschluesselungs-Tool \n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf(" Hauptmenue \n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("+ 1. Text einfuegen +\n\n"); printf("+ 2. Text aufrufen +\n\n"); printf("+ 3. Verschluesseln +\n\n"); printf("+ 4. Entschluesseln +\n\n"); printf("+ 5. Programm beenden +\n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("Ihre Eingabe: \n\n");
scanf("%d", &i); system("cls");
if (i==1) { eingeben(); system("cls"); }
if (i==2) { aufrufen(); system("cls"); }
if (i==3) { verschluesseln(); system("cls"); }
if (i==4) { entschluesseln(); system("cls"); }
} }
|
Headerdatei:
C++: |
#ifndef MYHEADER_H #define MYHEADER_H
int eingeben(); int aufrufen(); int verschluesseln(); int entschluesseln();
#endif
|
function.c*:
C++: |
#include "myheader.h" #include <stdio.h> #include <stdlib.h> #include <string.h>
char text[100];
int eingeben() { FILE *Datei; Datei = fopen ("text.txt", "w"); printf("Bitte geben Sie den Text ein: \n"); scanf("%s", &text); fprintf(Datei, text); fclose (Datei);; }
int aufrufen() { int c; FILE *datei;
datei=fopen("text.txt","r"); if(datei != NULL) { while((c=fgetc(datei))!= EOF) putchar(c); } else printf("Konnte Datei nicht finden bzw. öffnen!\n"); system("pause"); return 0; }
int verschluesseln() { int i = 0; system("cls"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf(" Untermenue 3 \n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("+ 1. Rot5 +\n\n"); printf("+ 2. Rot13 +\n\n"); printf("+ 3. Rot18 +\n\n"); printf("+ 4. Rot47 +\n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("Ihre Eingabe: \n\n"); scanf("%d", & i); system("Pause");
if (i==1) { rot5(); system("cls"); }
if (i==2) { rot13(); system("cls"); }
if (i==3) { rot18(); system("cls"); }
if (i==4) { rot47(); system("cls"); }
}
int entschluesseln() { system("cls"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf(" Untermenue 4 \n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("+ 1. Rot5 +\n\n"); printf("+ 2. Rot13 +\n\n"); printf("+ 3. Rot18 +\n\n"); printf("+ 4. Rot47 +\n\n"); printf("+++++++++++++++++++++++++++++++++++++++++\n\n"); printf("Ihre Eingabe: \n\n"); system("Pause"); }
rot5() { int rot5() { int y=0; char spanset [] = "1234567890"; char *ptr = text; int laenge = strlen(text); while ( y!=laenge-1){ if ((*ptr >= '0') && (*ptr <= '9')) { if(*ptr < '5'){ *ptr = *ptr +5; } else { *ptr = *ptr - 5; } } *ptr ++; y++; } return 0; } }
rot13() { }
rot18() { } rot47() { }
|
----- Edit: cpp-Tags eingefügt. Dieser Post wurde am 26.04.2015 um 00:02 Uhr von Hans editiert. |